Projetar barra de menu simples no GTK

O código fonte é a seguinte:

/ * AUTOR: Xixi 
  DATA: 2020/04/01 23:37:16 
* / 

#include <gtk / gtk.h> vazio delete_event (GtkWidget * widget, GdkEvent * evento , os dados gpointer) { 
gtk_main_quit (); 
} Int principal ( int argc, de char * argv []) { 
GtkWidget * janela; 
GtkWidget * vbox; 
GtkWidget * rootmenu1; 
GtkWidget * rootmenu2; 
GtkWidget * rootmenu3; 
GtkWidget * rootmenu4; 
GtkWidget * 
GtkAccelGroup






 menu;* Accel_group; 
GtkWidget * arrivemenu; 
GtkWidget * leavemenu; 
GtkWidget * showmenu; 
GtkWidget * mapmenu; 
GtkWidget * menuitem;
caractere * title = " 汽车站出租车拉客系统" ; 

gtk_init ( & argc, & argv); 

janela = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
gtk_window_set_title (GTK_WINDOW (janela), título); 
gtk_widget_set_size_request (janela, 500 , 450 ); 
gtk_container_set_border_width (GTK_CONTAINER (janela), 10 );
g_signal_connect (G_OBJECT (janela), " delete_event " , G_CALLBACK (gtk_main_quit), NULL); 

arrivemenu = gtk_menu_new (); 
menuitem = gtk_menu_item_new_with_label ( " 车牌号" ); 
gtk_menu_shell_append (GTK_MENU_SHELL (arrivemenu), menuitem); 
gtk_widget_show (menuitem); 

menuitem = gtk_menu_item_new_with_label ( " 到达时间" ); 
gtk_menu_shell_append (GTK_MENU_SHELL (arrivemenu), menuitem); 
gtk_widget_show (menuitem); 

menuitem = gtk_menu_item_new_with_label ( " 停放位置" );
gtk_menu_shell_append (GTK_MENU_SHELL (arrivemenu), menuitem); 
gtk_widget_show (menuitem); 

rootmenu1 = gtk_menu_item_new_with_label ( " 车辆到达" ); 
gtk_menu_item_set_submenu (GTK_MENU_ITEM (rootmenu1), arrivemenu); 
menu = gtk_menu_bar_new (); 
gtk_menu_shell_append (GTK_MENU_SHELL (menu), rootmenu1); 
gtk_widget_show (rootmenu1); 

leavemenu = gtk_menu_new (); 
menuitem = gtk_menu_item_new_with_label ( " 车牌号" ); 
gtk_menu_shell_append (GTK_MENU_SHELL (leavemenu), menuitem); 
gtk_widget_show (menuitem); 

item do menu= gtk_menu_item_new_with_label ( " 离开时间" ); 
gtk_menu_shell_append (GTK_MENU_SHELL (leavemenu), menuitem); 
gtk_widget_show (menuitem); 
 
menuitem = gtk_menu_item_new_with_label ( " 应付费用" ); 
gtk_menu_shell_append (GTK_MENU_SHELL (leavemenu), menuitem); 
gtk_widget_show (menuitem); 

rootmenu2 = gtk_menu_item_new_with_label ( " 车辆离开" ); 
gtk_menu_item_set_submenu (GTK_MENU_ITEM (rootmenu2), leavemenu); 
gtk_menu_shell_append (GTK_MENU_SHELL (menu), rootmenu2); 
gtk_widget_show (rootmenu2); 

showmenu = gtk_menu_new (); 
item do menu= gtk_menu_item_new_with_label ( " 显示... " ); 
gtk_menu_shell_append (GTK_MENU_SHELL (showmenu), menuitem); 
gtk_widget_show (menuitem); 

rootmenu3 = gtk_menu_item_new_with_label ( " 车场情况" ); 
gtk_menu_item_set_submenu (GTK_MENU_ITEM (rootmenu3), showmenu); 
gtk_menu_shell_append (GTK_MENU_SHELL (menu), rootmenu3); 
gtk_widget_show (rootmenu3); 

mapmenu = gtk_menu_new (); 
menuitem = gtk_menu_item_new_with_label ( " 九江地点查询" ); 
gtk_menu_shell_append (GTK_MENU_SHELL (mapmenu), menuitem); 
gtk_widget_show (menuitem); 
 
item do menu= Gtk_menu_item_new_with_label ( " orientação mais curto percurso " ); 
gtk_menu_shell_append (GTK_MENU_SHELL (mapmenu), MenuItem); 
o gtk_widget_show (MenuItem); 

MenuItem = gtk_menu_item_new_with_label ( " informação do ponto de vista " ); 
gtk_menu_shell_append (GTK_MENU_SHELL (mapmenu), MenuItem); 
o gtk_widget_show (MenuItem) ; 

MenuItem = gtk_menu_item_new_with_label ( " Vista do percurso recomendado " ); 
gtk_menu_shell_append (GTK_MENU_SHELL (mapmenu), MenuItem); 
gtk_widget_show (MenuItem); 

accel_group = gtk_accel_group_new (); // combinação irá otimizar o sub-menu
 = gtk_window_add_accel_group (GTK_WINDOW (janela), accel_group ) ;
menuItem gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, accel_group); 
gtk_menu_shell_append (GTK_MENU_SHELL (mapmenu), menuitem); 
gtk_widget_show (menuitem); 

rootmenu4 = gtk_menu_item_new_with_label ( " 导航功能" ); 
gtk_menu_item_set_submenu (GTK_MENU_ITEM (rootmenu4), mapmenu); 
gtk_menu_shell_append (GTK_MENU_SHELL (menu), rootmenu4); 
gtk_widget_show (rootmenu4); 

gtk_widget_show (menu); 

vbox = gtk_vbox_new (FALSE, 0 ); 
gtk_box_pack_start (GTK_BOX (vbox), menu, FALSO, FALSO, 0 ); 
gtk_widget_show (vbox); 
gtk_container_add (GTK_CONTAINER (janela), vbox);

gtk_widget_show_all (janela); 

gtk_main (); 

retornar  0 ; 


}

A lógica de código é simples!

 

 

 

Foi Walker, um passo a passo Dengfeng!

Acho que você gosta

Origin www.cnblogs.com/ouyangmail/p/12616876.html
Recomendado
Clasificación