![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Предлагаю, выкладывать в этой теме примеры простейших программ и разную полезную информацию по GTK+.
Правда только если это будет кому-либо интересно на нашем форуме, например тема с Arduino у нас здесь заглохла . Поскольку плодить мертвые темы глупо, пишите если есть интерес, если интереса ни у кого не будет , тему просто удалим. PS А вообще у нас как-то тихо, что на Линуксе для всех , что здесь ![]() Сообщение отредактировал kostyalamer - 30.8.2014, 17:03 |
|
|
![]() |
![]()
Сообщение
#2
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Еще один шаблончик на ту же тему, на мой взгляд будет симпатичней, к тому же окошко тянется вместе с кнопками :
Код #include <gtk/gtk.h> int winx = 200; int winy = 200; int zazor =5; /* Новый обратный вызов. Данные переданные этой функции выводятся на stdout */ void callback( GtkWidget *widget, gpointer data ) { g_print ("Hello again - %s was pressed\n", (gchar *) data); } /* другой обратный вызов */ gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { gtk_main_quit (); return FALSE; } int main( int argc, char *argv[] ) { /* Тип указателей на виджеты - GtkWidget */ GtkWidget *window; GtkWidget *button; GtkWidget *box1; /* Этот вызов присутствует во всех программах GTK. Разбираются аргументы командной строки и возвращаются программе */ gtk_init (&argc, &argv); /* Создаём основное окно программы */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* Новый вызов который устанавливает заголовок * окна */ gtk_window_set_title (GTK_WINDOW (window), "Тест кнопок gtk2 "); gtk_window_set_default_size(GTK_WINDOW(window), winx, winy); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); /* Определяем обработчика сигналов delete_event * для выхода из GTK. */ g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL); /* Устанавливаем ширину окантовки окна программы */ gtk_container_set_border_width (GTK_CONTAINER (window), zazor*2); /* Создаём контейнер для упаковки виджетов. Реально контейнер не отображается, он используется как инструмент для размещения виджетов */ box1 = gtk_vbox_new (FALSE, zazor); /* Помещаем контейнер в основное окно. */ gtk_container_add (GTK_CONTAINER (window), box1); /* Создаём кнопку с надписью "Button 1". */ button = gtk_button_new_with_label ("Кнопка 1"); /* Размещаем кнопку "button 1" в качестве аргумента для функции обратного вызова, для того, чтобы вызывать эту функцию при нажатии на кнопку.*/ g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (callback), (gpointer) "button 1"); /* Вместо gtk_container_add, мы упаковываем кнопку * в невидимый контейнер который был помещен в основное окно. */ gtk_box_pack_start (GTK_BOX(box1), button, TRUE, TRUE, 0); /* Обязательное действие для отображения сформированной кнопки */ //gtk_widget_show (button); /* Повторяем теже самые действия для создания второй кнопки */ button = gtk_button_new_with_label ("Кнопка 2"); g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (callback), (gpointer) "button 2"); gtk_box_pack_start(GTK_BOX (box1), button, TRUE, TRUE, 0); /* Повторяем теже самые действия для создания третьей кнопки */ button = gtk_button_new_with_label ("Кнопка 3"); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (callback), (gpointer) "button 3"); gtk_box_pack_start(GTK_BOX (box1), button, TRUE, TRUE, 0); /* Повторяем теже самые действия для создания кнопки выход*/ button = gtk_button_new_with_label ("Выход"); g_signal_connect( G_OBJECT( button), "clicked",GTK_SIGNAL_FUNC(gtk_main_quit), "button 4"); // Выход по нажатию кнопки gtk_box_pack_start(GTK_BOX (box1), button, TRUE, TRUE, 0); gtk_widget_show_all(window); /* Входим в gtk_main и ждем событий X сервера для начала выполнения действий! */ gtk_main (); return 0; } Выглядит эта радость так : ![]() в качестве основы взят пример : http://www.opennet.ru/docs/RUS/gtk_plus/x363.html переделанный под вертикальный контейнер. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 5.7.2025, 6:09 |