Єдина Країна! Единая Страна!

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
34
#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;
}
</gtk>

Тут ми створюємо кнопку з міткою “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));

gtkbutton

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

gtk_markup_label

Коментарі

коментарі

Powered by Facebook Comments

Leave a Reply