生成器无法找到新创建的按钮

Builder unable to find newly created button

使用创建对象后:

GtkWidget* New = gtk_button_new_with_label("new");

并使用以下方式设置小部件的名称:

gtk_widget_set_name(New, "new");

application->get_object("new") 仍然返回 null。我究竟做错了什么? : **(

Gtk::Builder::get_object(const Glib::ustring& name) 在 ui 文本文件中查找对象。你可以用 Glade 写一个 ui 文件,https://glade.gnome.org/index.html.

然而,当你写

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

您创建一个标签并为其命名。但是标签不在 ui 文件中。因此,您将无法从 Gtk::Builder 实例中找到它。名称 "new-name" 允许您在 CSS 文件中将其称为 "new-name",因此您可以更改其主题(字体、背景颜色等)。

这是两个不同的东西。