【问题标题】:GTK - multiple objects signal connectGTK - 多个对象信号连接
【发布时间】:2020-03-15 05:48:48
【问题描述】:

我的 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】:

    使用循环:

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多