gtk - 我在 glade gtkbuilder 和连接信号中遗漏了一些明显的东西。帮助?

标签 gtk glade gtkmm gtkbuilder

我用 glade 制作我的界面。效果很好。 我编写了一个很小的主函数,它调用 gtkbuilder 并在 glade 文件中呈现所有内容。

Gtk::Main kit(num, opts);
// Load the GtkBuilder file and instantiate its widgets:
Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("dsg.glade", "mainwindow");

效果更好。然后我得到我的小部件

Gtk::Button *sf = 0;
builder->get_widget("button", sf);

现在呢?我发现连接信号处理程序的每个示例都不是由 gtkbuilder 构建的。如果您实例化自己的类来表示/处理/呈现按钮,则很容易将信号处理程序连接到它,但我使用的是 gtkbuilder,但我不知道如何编写一个可以附加到我的小部件的函数,因为我不是创建按钮对象的人,所以 gtkbuilder 是。

我是否让 gtkbutton 的子类编写我的函数然后指向它?但是我的类没有被 gtkbuilder 实例化。

我只是不明白。帮忙?

最佳答案

您没有遗漏任何明显的东西。似乎 gtkmm 没有提供 gtk_builder_connect_signals() 函数的 C++ 版本,这是你在 C 中的做法。我做了一些谷歌搜索,但我无法弄清楚为什么他们会遗漏它。

您可以像这样直接访问 C 函数:

Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("dsg.glade", "mainwindow");
gtk_builder_connect_signals(builder->gobj(), callback_data);

关于gtk - 我在 glade gtkbuilder 和连接信号中遗漏了一些明显的东西。帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098636/

相关文章:

单击桌面使 GTK3 窗口消失

linux - GtkWidget.events 属性(例如)GtkTreeView 小部件的用途是什么?

windows - 如何在 Windows 上打包 haskell gtk2hs glade 应用程序?

c++ - GTKMM:截屏 DrawingArea?

windows - 适用于 Windows 的 Gtkmm 3.0 库

Python - 如何将 gtk.DrawingArea 缩放到适合 gtk.Window 宽度和高度?

C - Gtk3- 开罗 - DrawArea - 平面笛卡尔 - 如何添加文本?

python - 如何获取图标名称的完整文件路径?

c - Glade3 C 编程按钮

c++ - GStreamermm:通过派生自 Gst::Element 创建新的元素类型(在插件中)