Строителю не удалось найти только что созданную кнопку - PullRequest
0 голосов
/ 26 марта 2020

После создания объекта с помощью:

GtkWidget* New = gtk_button_new_with_label("new");

и задания имени виджета с помощью:

gtk_widget_set_name(New, "new");

application->get_object("new") по-прежнему возвращает ноль. Что я делаю неправильно? : ** (

1 Ответ

0 голосов
/ 27 марта 2020

Gtk::Builder::get_object(const Glib::ustring& name) ищет объект в текстовом файле пользовательского интерфейса. Вы можете написать файл пользовательского интерфейса с Glade, https://glade.gnome.org/index.html.

Однако, когда вы пишете

GtkWidget* New = gtk_button_new_with_label("new-name");
gtk_widget_set_name(New, "new-name");

, вы создаете метку и даете ей имя. Но метка не находится в файле пользовательского интерфейса. Так что вы не сможете найти его из своего Gtk::Builder экземпляра. Название «new-name» позволяет использовать его как «new-name» в файле CSS, поэтому вы можете изменить его тему (шрифт, цвет фона и т. Д. c).

Это две разные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...