我正在使用 glade 制作我的 .ui 文件,然后使用GtkBuilder
我将整个 .ui 文件加载到我的 C 程序中,因此所有小部件和东西都是从构建器文件本身创建的。
早些时候我只从代码本身创建小部件,因此允许我将任何类型的数据传递给回调,因为第二个参数是一个gpointer
变量,我可以随时创建一个指向自定义结构的指针并将任何类型的数据传递给回调。
但现在要连接到信号,我只是使用这个简单的功能:
gtk_builder_connect_signals(builder, NULL);
builder
指向的指针在哪里GtkBuilder
。
这将 glade 文件中提到的所有信号与 .c 文件中定义的函数的信号连接起来,除了 Widgets(它们本身只能在 glade 中定义)之外,没有任何传递 user_data 的规定。
谁能告诉我一个解决方案,以便我可以将任何类型的数据传递给我的回调。我不想离开 glade,因为它节省了我很多时间,因此我不想切换到仅通过代码创建小部件的传统方式。
同时使用 g_connect_signal() 和 gtk_builder_connect_signals() 的示例会有所帮助。在这种情况下,首先调用哪个来覆盖信号连接。