![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Предлагаю, выкладывать в этой теме примеры простейших программ и разную полезную информацию по GTK+.
Правда только если это будет кому-либо интересно на нашем форуме, например тема с Arduino у нас здесь заглохла . Поскольку плодить мертвые темы глупо, пишите если есть интерес, если интереса ни у кого не будет , тему просто удалим. PS А вообще у нас как-то тихо, что на Линуксе для всех , что здесь ![]() Сообщение отредактировал kostyalamer - 30.8.2014, 17:03 |
|
|
![]() |
![]()
Сообщение
#2
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Шаблон для программ с менюшками , по мотивам : http://welinux.ru/post/1754/
Код #include <gtk/gtk.h> int main( int argc, char *argv[]) { GtkWidget *window; GtkWidget *vbox; GtkWidget *menubar; GtkWidget *menu1; GtkWidget *m1; GtkWidget *menu2; GtkWidget *m2; GtkWidget *menu3; GtkWidget *m3; GtkWidget *quit; GtkWidget *m11,*m21, *m31, *m12,*m22,*m32; void menu_clicked(GtkWidget *m11, gpointer data) // Обработчик выбора пунктов меню { printf("Выбран пункт %s \n", (char *) data); } 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_default_size(GTK_WINDOW(window), 250, 200); gtk_window_set_title(GTK_WINDOW(window), "menu"); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); menubar = gtk_menu_bar_new(); menu1= gtk_menu_new(); m1= gtk_menu_item_new_with_label("Меню_1"); m11 = gtk_menu_item_new_with_label("Меню1.1"); m12 = gtk_menu_item_new_with_label("Меню1.2"); quit = gtk_menu_item_new_with_label("Выход"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(m1), menu1); gtk_menu_shell_append(GTK_MENU_SHELL(menu1), m11); gtk_menu_shell_append(GTK_MENU_SHELL(menu1), m12); gtk_menu_shell_append(GTK_MENU_SHELL(menu1), quit); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), m1); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3); menu2 = gtk_menu_new(); m2 = gtk_menu_item_new_with_label("Меню_2"); m21 = gtk_menu_item_new_with_label("Меню_2.1"); m22 = gtk_menu_item_new_with_label("Меню_2.2"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(m2), menu2); gtk_menu_shell_append(GTK_MENU_SHELL(menu2), m21); gtk_menu_shell_append(GTK_MENU_SHELL(menu2), m22); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), m2); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3); menu3 = gtk_menu_new(); m3 = gtk_menu_item_new_with_label("Меню_3"); m31 = gtk_menu_item_new_with_label("Меню_3.1"); m32 = gtk_menu_item_new_with_label("Меню_3.2"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(m3), menu3); gtk_menu_shell_append(GTK_MENU_SHELL(menu3), m31); gtk_menu_shell_append(GTK_MENU_SHELL(menu3), m32); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), m3); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3); g_signal_connect_swapped(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit), NULL); g_signal_connect( G_OBJECT( m11 ), "activate",GTK_SIGNAL_FUNC(menu_clicked), "Меню1.1"); g_signal_connect( G_OBJECT( m12 ), "activate",GTK_SIGNAL_FUNC(menu_clicked), "Меню1.2"); g_signal_connect( G_OBJECT( m21 ), "activate",GTK_SIGNAL_FUNC(menu_clicked), "Меню2.1"); g_signal_connect( G_OBJECT( m22 ), "activate",GTK_SIGNAL_FUNC(menu_clicked), "Меню2.2"); g_signal_connect( G_OBJECT( m31 ), "activate",GTK_SIGNAL_FUNC(menu_clicked), "Меню3.1"); g_signal_connect( G_OBJECT( m32 ), "activate",GTK_SIGNAL_FUNC(menu_clicked), "Меню3.2"); g_signal_connect(G_OBJECT(quit), "activate",G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } Выглядит вот так: ![]() PS на этом шаблоне я и закончу, все что нужно для написания простейших приложений на си и gtk здесь есть, а писать в пустоту не интересно ![]() PPS Клубу явно не хватает кодеров |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 5.7.2025, 9:13 |