Сочетание изображения и текста не должно быть проблемой; просто создайте GtkImage и установите GtkHBox и добавьте это к кнопке. В GTK +, buttons являются контейнерами и могут содержать любую комбинацию виджетов. Отрегулируйте packing parameters, чтобы изображение было маленьким, а ярлык получает оставшееся пространство.
Мигание фона сложнее; GtkLabels не отображают их фон, поэтому они не могут влиять на цвет этой области. Возможно, вы, возможно, достаточно быстро запустили цвет переднего плана (например, используя встроенный HTML в тексте ярлыка), вы можете начать с этого, а затем пересмотреть проблему, как только узнаете больше о GTK +.
Настройте каждую законченную кнопку на GtkVBox и поместите ее в GtkScrolledWindow, чтобы получить прокрутку.
UPDATE: Для того, чтобы узнать, какая кнопка получает щелкнул, вам необходимо подключить обработчик сигнала «clicked»:
static void cb_button_clicked(GtkButton *button, gpointer user)
{
printf("Whaddaya know, button number %d was clicked!\n", GPOINTER_TO_INT(user));
}
... elsewhere, when building the button ...
GtkWidget *btn;
btn = gtk_button_new_with_label("My fancy button");
g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(cb_button_clicked), GINT_TO_POINTER(42));
Приведенный выше код создает простую меченого кнопку, ваш код будет явно но это не меняет способ привязки обработчика сигнала.
Просто любите так, как вы объяснили ... спасибо .... я просто попробую! .. но я создал этот экран с помощью Glade и в том, что у меня есть один vBox (с одним пустым местом) Мне нужно добавить весь этот материал (список) в это место ... так что я должен добавить GtkScrolledWindow в это место? – User7723337
@Pradeep: Спасибо. У меня есть ... несколько лет опыта GTK +, он помогает в таких вопросах. :) И да, начните с «снаружи», добавив GtkScrolledWindow. – unwind
ok Выполнено со всеми основными вещами, теперь у меня есть прикрепленное событие click для каждой кнопки в списке .. но как мне узнать, какая кнопка нажата? – User7723337