Rom@rio Опубликовано 26 октября, 2014 Жалоба Поделиться Опубликовано 26 октября, 2014 Очень интересуюсь тем, как сделать меню 3-его уровня. Ниже приведу листинг, с помощью которого получилось сделать строку меню с пунктом меню, по нажатию которого появляется меню. И для этого меню, свои пункты меню. #include <gtk/gtk.h> gint32 delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) { gtk_main_quit(); return FALSE; } int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *menu_bar; GtkWidget *menu; GtkWidget *box; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "menu"); gtk_container_set_border_width(GTK_CONTAINER(window), 10); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), "NULL"); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(window), box); menu = gtk_menu_new(); // меню menu_bar = gtk_menu_bar_new(); // строка меню // создаем новые пункты меню GtkWidget *file_item = gtk_menu_item_new_with_label("file"); GtkWidget *open_item = gtk_menu_item_new_with_label("open"); GtkWidget *save_item = gtk_menu_item_new_with_label("save"); GtkWidget *quit_item = gtk_menu_item_new_with_label("quit"); // привязываем пункты меню к меню gtk_menu_shell_append(GTK_MENU_SHELL(menu), open_item); gtk_menu_shell_append(GTK_MENU_SHELL(menu), save_item); gtk_menu_shell_append(GTK_MENU_SHELL(menu), quit_item); // обработчики сигналов для пунктов меню g_signal_connect_swapped(G_OBJECT(open_item), "activate", G_CALLBACK(delete_event), "NULL"); g_signal_connect_swapped(G_OBJECT(save_item), "activate", G_CALLBACK(delete_event), "NULL"); g_signal_connect_swapped(G_OBJECT(quit_item), "activate", G_CALLBACK(delete_event), "NULL"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file_item), menu); gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file_item); gtk_box_pack_start(GTK_BOX(box), menu_bar, FALSE, FALSE, 3); gtk_widget_show_all(window); gtk_main(); return 0; } Помогите направить меня в правильную сторону. Если не кодом, то идеей.. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.