GTK-多个对象信号连接

问题描述 投票:0回答:1

我的gtk程序中有很多按钮,它们具有相同的回调函数。如何避免重复。例如:

g_signal_connect(G_OBJECT(button1), "clicked", G_CALLBACK(button_clicked), data);
g_signal_connect(G_OBJECT(button2), "clicked", G_CALLBACK(button_clicked), data);
g_signal_connect(G_OBJECT(button3), "clicked", G_CALLBACK(button_clicked), data);
g_signal_connect(G_OBJECT(button4), "clicked", G_CALLBACK(button_clicked), data);

并执行类似的操作

g_signal_connect(G_OBJECT(four_buttons), "clicked", G_CALLBACK(button_clicked), data);

我该怎么办?在此先感谢

c gtk
1个回答
0
投票

使用循环:

GtkButton *buttons[] = { button1, button2, button3, button4 };
for (int index = 0; index < 4; index++)
    g_signal_connect(G_OBJECT(buttons[index]), "clicked", G_CALLBACK(button_clicked), data);
© www.soinside.com 2019 - 2024. All rights reserved.