【发布时间】:2013-04-07 06:14:43
【问题描述】:
我正在使用 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() 的示例会有所帮助。在这种情况下,首先调用哪个来覆盖信号连接。
【问题讨论】: