C GTK-多目标信号连接

C GTK-多目标信号连接,c,gtk,C,Gtk,我的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_

我的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);
我怎么做?提前感谢

使用循环:

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);
GtkButton*按钮[]={button1,button2,button3,button4};
对于(int-index=0;index<4;index++)
g_信号连接(g_对象(按钮[索引]),“点击”,g_回调(按钮点击),数据);