GTK+ — 6. Кнопки і текстові мітки
Квітень 13th, 2009З цієї частини почнемо розглядати найпопулярніші графічні віджети, які надає GTK+. Першими будуть, як і слід, стандартні елементи графічного інтерфейсу, а саме: кнопки і текстові мітки.
GtkButton
Ось приклад простого вікна з кнопкою, при натисканні на яку викликається внутрішня функція gtk_main_quit(), котра завершує роботу програми:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *fixed; GtkWidget *button; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "GtkButton"); gtk_window_set_default_size(GTK_WINDOW(window), 230, 150); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); fixed = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER(window), fixed); button = gtk_button_new_with_label("Quit"); gtk_fixed_put(GTK_FIXED(fixed), button, 50, 50); gtk_widget_set_size_request(button, 80, 35); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(gtk_main_quit), G_OBJECT(window)); g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } |
Тут ми створюємо кнопку з міткою “Quit” (вийти):
1 | button = gtk_button_new_with_label("Quit"); |
А тут прив’язуємо сигнал “clicked” кнопки до функції gtk_main_quit():
1 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(gtk_main_quit), G_OBJECT(window)); |

GtkLabel
Приклад простої програми з текстовою міткою із написом “Ukraine — the best country in the world!”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *label; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_title(GTK_WINDOW(window), "markup label"); char *str = "<b>Ukraine</b> — the best country in the world!"; label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), str); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); gtk_container_add(GTK_CONTAINER(window), label); gtk_widget_show(label); gtk_window_set_default_size(GTK_WINDOW(window), 300, 100); g_signal_connect(window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show(window); gtk_main(); return 0; } |
Цю стрічку ми використаємо для мітки:
1 | char *str = "<b>Ukraine</b> — the best country in the world!"; |
А тут створюємо мітку, і дозволяємо оформлення тексту за допомогою теґів html (завдяки цьому слово “Ukraine”, взяте у нашому прикладі в теґ , виділяється жирним):
1 2 | label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), str); |



Comments
Powered by Facebook Comments