GTK3笔记 - 添加菜单栏

245 阅读1分钟

废话不都说,代码很简单。主要实现的是,在主窗口中添加菜单栏File->Quit,实现点击Quit选项时,退出程序。主要代码如下:

static void _exit_program(GtkWidget *wid, gpointer ptr) {
    (void)wid;
    GApplication *app = ptr;
    g_application_quit(app);
}

static void _new_menu_bar(GApplication* app, GtkWidget *main_window) {
    GtkWidget *mbar = gtk_menu_bar_new();
    GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
    gtk_box_pack_start(GTK_BOX(vbox), mbar, FALSE, TRUE, 0);

    GtkWidget *file_mi = gtk_menu_item_new_with_label("File");
    gtk_menu_shell_append(GTK_MENU_SHELL(mbar), file_mi);

    GtkWidget *f_menu = gtk_menu_new();
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(file_mi), f_menu);

    GtkWidget *quit_mi = gtk_menu_item_new_with_label("Quit");
    gtk_menu_shell_append(GTK_MENU_SHELL(f_menu), quit_mi);
    g_signal_connect(quit_mi, "activate", G_CALLBACK(_exit_program), app);

    gtk_container_add(GTK_CONTAINER(main_window), vbox);
}

效果图: