⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.cpp

📁 gtk+ 编程
💻 CPP
字号:
//添加菜单
#include<gtk/gtk.h>
void on_menu_activate (GtkMenuItem* item,gpointer data)
{ 
     //g_print(""menu %s is activated",(gchar*)data);
     g_print("Menuitem %s is pressed.\n",(gchar*)data);
}
int main (int argc, char* argv[])
{
    GtkWidget* window;
    GtkWidget* box;
    GtkWidget* menubar;
    GtkWidget* menu;
    GtkWidget* editmenu;
    GtkWidget* helpmenu;
    GtkWidget* rootmenu;
    GtkWidget* menuitem;
    GtkAccelGroup* accel_group;
    gtk_init(&argc,&argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"menu testing");
    g_signal_connect(G_OBJECT(window),"destroy",
        G_CALLBACK(gtk_main_quit),NULL);
    accel_group = gtk_accel_group_new();
    gtk_window_add_accel_group(GTK_WINDOW(window),accel_group);
    box = gtk_vbox_new(FALSE,0);
    gtk_container_add(GTK_CONTAINER(window),box);
    menu = gtk_menu_new();
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_NEW,accel_group );
    gtk_menu_shell_append(GTK_MENU_SHELL(menu),menuiten);
    g_signal_connect(G_OBJECT(menuitem),"activate",
        G_CALLBACK(on_menu_activate),(gpointer)("open");
    menuitem = gtk_image_menu_item_new_from_stock
         (GTK_STOCK_SAVE,accle_group);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu),menuitem);
    g_signal_connect(G_OBJECT(menuitem),"activate",
        G_CALLBACK(on_menu_activate),(gpointer)("Save");
    menuitem = gtk_image_menu_item_new_from_stock
        (GTK_STOCK_SAVE_AS,accel_group);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu),menuitem);
    g_signal_connect(G_OBJECT(menuitem),"activate",
        G_CALLBACK(on_menu_activate),(gpointer)("Save as"));
        menuitem = gtk_separator_menu_item_new();
        gtk_menu_shell_append(GTK_MENU_SHELL(menu),menuitem);
        menuitem = gtk_image_menu_item_new_from_stock
            (GTK_STOCK_QUIT,accel_gtoup);
        gtk_menu_shell_appemd(GTK_MENU_SHELL(menu),menuitem);
        g_signal_connect(G_OBJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activate),(gpointer)("exit");
        rootmenu = gtk_menu_item_new_with_label("file");
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),menu);
        menubar = gtk_menu_bar_new();
        gtk_menu_shell_append(GTK_MENU_SHELL(munubar),rootmenu);
        rootmenu = gtk_menu_item_new_with_label("edit");
        editmenu = gtk_menu_new();
        menuitem = gtk_image_menu_item_new_from_stock
            (GTK_STOCK_CUT,accel_group);
        gtk_menu_shell_append(GTK_MENU_SHELL(editmenu),menuitem);
        g_signal_connect(G_OJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activare),(gpointer)("cut"));
        menuitem =  gtk_image_menu_item_new_from_stock
            GTK_STOCK_COPY,accel_group);
        gtk_menu_shell_append(GTK_MENU_SHELL(editmenu),menuitem);
        g_signal_connect(G_OBJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activate),(gpointer)("copy"));
        menuitem = gtk_image_menu_item_new_from_stock
            (GTK_STOCK_PASTE,accel_group);
        gtk_menu_shell_append(GTK_MENU_SHELL(editmenu),menuitem);
        g_signal_connect(G_OBJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activate),(gpointer)("paste");
        menuitem = gtk_image_menu_item_new_from_stock
            (GTK_STOCK_FIND,accel_group);
        gtk_menu_shell_append(GTK_MENU_SHELL(editmenu),menuitem);
        g_signal_connect(G_OBJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activate),(gpointer)("search");
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),editmenu);
        gtk_menu_shell_append(GTK_MENU_SHELL(menubar),rootmenu);
        rootmenu = gtk_menu_item_new_with_label("help");
        helpmenu = gtk_menu_new();
        menuitem = gtk_image_menu_item_new_from_stock
             (GTK_STOCK_HELP,accel_group);
        gtk_menu_shell_append(GTK_MENU_SHELL(helpmenu),menuitem);
        g_signal_connect(G_OBJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activate),(gpointer)("help"));
        menuitem = gtk_menu_item_new_with_label(" about~~~~~~~");
        gtk_menu_shell_append(GTK_MENU_SHELL(helpmenu),menuitem);
        g_signal_connect(G_OBJECT(menuitem),"activate",
            G_CALLBACK(on_menu_activate),(gpointer)("About")); 
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu),helpmenu);
        gtk_menu_shell_append(GTK_MENU_SHELL(menubar),rootmenu);
        gtk_box_pack_start(GTK_BOX(box),menubar,FALSE,FALSE,0);
        gtk_widget_show_all(window);
        gtk_main();
        return FALSE;
}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
       
    
     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -