Просматривая код руководства главы 10 в книге GTK+, я столкнулся со следующим несоответствием между Glade и интерпретируемый вывод. Мне кажется, что панель инструментов (которая является 1-м элементом в вертикально выровненном поле) настроена на расширение, но я специально отключил это и вместо этого включил его для GtkTreeView
, который является 3-м элементом в том же vbox.
Поляна:
Приложение:
Это соответствующий Glade XML
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
[...]
<object class="GtkToolbar" id="toolbar1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">123</property>
<property name="toolbar_style">both</property>
<property name="show_arrow">False</property>
<property name="icon_size">2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
[...]
</interface>
Который загружается этим простым main()
:
void on_back_clicked(GtkToolButton *button);
void on_forward_clicked(GtkToolButton *button);
void on_up_clicked(GtkToolButton *button);
void on_refresh_clicked(GtkToolButton *button);
void on_home_clicked(GtkToolButton *button);
void on_delete_clicked(GtkToolButton *button);
void on_information_clicked(GtkToolButton *button);
void on_go_clicked(GtkToolButton *button);
void on_location_activate(GtkEntry *entry);
void on_row_activated(GtkTreeView *treeview, GtkTreePath *treepath, GtkTreeViewColumn *column);
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkBuilder *builder;
gtk_init(&argc, &argv);
builder = gtk_builder_new_from_file("browser.glade");
window = GTK_WIDGET(gtk_builder_get_object(builder, "applicationwindow1"));
gtk_builder_connect_signals(builder, NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Я также получаю следующую ошибку при запуске приложения:
(browser:4672): Gtk-CRITICAL **: gtk_application_get_menubar: assertion 'GTK_IS_APPLICATION (application)' failed
Любые намеки на то, что здесь происходит на любом из них?