GTK - подключение нескольких объектов сигнала - PullRequest
0 голосов
/ 14 марта 2020

У меня много кнопок в моей программе 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);

Как я могу это сделать? Заранее спасибо

1 Ответ

1 голос
/ 15 марта 2020

Использовать все oop:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...