Mas*_*psi 10 gtk glade gtkbuilder
我正在用Gtk和Glade开发一个应用程序.我的印象是,为您的主窗口创建GtkWindow的子类是常见的做法,但我仍然坚持如何从GtkBuilder定义构造我的子类.有谁知道怎么样?
子类化GtkWindow在GTK的各种语言绑定中比在普通C中更常见.您没有提到您正在使用的语言.
也就是说,我GtkWindow在C 中子类化的方式是在Glade中创建窗口的内容,而不是窗口本身.在Glade 3(IIRC)中,您可以右键单击选项板中的小部件,然后选择"将小部件添加为顶级"以放置不带容器的非顶级小部件.
然后为你的子类编写代码GtkWindow,让我们调用它MyAppWindow.由于GObject文档中有大量示例,因此我不会在此答案中进行讨论.在init函数(my_app_window_init())中加载Glade文件,用于gtk_builder_get_object()获取指向Glade文件中最外层窗口小部件的指针,并用于gtk_container_add()将其添加到您正在构建的窗口中.然后gtk_builder_connect_signals()像往常一样使用.
您必须以这种方式手动设置所有窗口的属性,因为您无法在Glade中执行此操作,但除此之外我发现它的工作原理非常好.