В этой статье я хочу познакомить вас с такой удобной библиотекой как GTK.
GTK - (GIMP Toolkit) библиотека для создания графического интерфейса под XWindow (графическая система nix подобных систем). Естественно чтобы писать программы с применением GTK, необходимо иметь в своем распоряжении linux (freebsd, etc.), gcc и саму gtk.
Как вы наварно догадались описываемые в этой статье примеры будут работать под "правильную ос" linux. Вообщето, библиотека GTK кроссплатформенна, и на ней можно с темже успехом создавать программы и под windows, но эту часть я не буду затрагивать в статье. Так что если у вас не установлен еще на ПК linux, то не теряйте времени =).
И так, для начала разберемся как мы будем компилировать наше будущее приложение. Для успешной сборки, надо, находясь в каталоге с исходником, выполнить слудущую команду:
gcc -o hello hello.c `gtk-config --cflags --libs`
Где hello.c - исходник, а hello - результирующая программа.
Давайте же напишем наш первый пример:
<font size="2"> #include <gtk/gtk.h> int main( int argc, char *argv[] ) { GtkWidget *window; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); gtk_main (); return(0); } </font>
По сути, эта программа почти ничего не делает. Она просто создает окно. Но давайте поподробнее разберем этот пример:
GtkWidget *window; - определяет "виджет" окна. Виджетами в gtk называются все графические объекты и контенеры так что вам придется запомнить это слово.
gtk_init(int *argc,char ***argv) инициализирует инструментарий и принимает параметры командной строки.Эта функция должна быть использована после определения компонент.
GtkWidget *gtk_window_new(GtkWindowType windowtype) создает новое окно. В качестве параметров эта функция может принемать следущие значения. Они определяют тип создаваемого окна:
* GTK_WINDOW_TOPLEVEL* GTK_WINDOW_DIALOG
* GTK_WINDOW_POPUP
gtk_widget_show(GtkWidget *widget) используется для того ,чтобы заставить виджет появиться в окне. Функия должна использоваться после определения виджета и изменения его аттрибутов.
И наконец gtk_main(void). Эту функцию необходимо ВСЕГДА вызывать в конце программы.
Вам наверно не безинтересны будут еще некоторые функции с которыми я вам рекомендую поиграться самому. Эти функции задают еще некоторые свойства нашего окна:
gtk_window_set_title(GtkWindow *window,const gchar *title) - как не сложно догадаться задает заголовок окна. Не стоит боятся что второй параметр определен как gchar. Это тот же char но описаный в glib и имеющий некоторые дополнительные полезные свойства. Скорее стоет повнимательнее отнестись к первому параметру. По идее ему передается виджет окна. Но он имеет тип GtkWidget, а принемаемое значение - GtkWindow... По этому эту функцию надо использовать совместно с другой - GTK_WINDOW(GtkWidget *widget). Например так: gtk_window_set_title(GTK_WINDOW(window),"My first Program");
gtk_window_set_default_size(GtkWindow *window, gint width, gint height) - задает размер окна. Тип gint аналогичен типу int.
gtk_window_set_position(GtkWindow *window, GtkWindowPosition position) - устанавливает стартовую позицию окна (т.е. где наше окошко появится при запуске программы). Параметр position может определяться следущими константами:
* GTK_WIN_POS_NONE* GTK_WIN_POS_CENTER
* GTK_WIN_POS_MOUSE
* GTK_WIN_POS_CENTER_ALWAYS
Ну думаю, на сегодня с тебя достаточно =). В следущий раз мы добавим в наше окно некоторые элементы и научимся обрабатывать от них сигналы.
© Cobalt 23.03.2007


