0

でコード化された GTK アプリケーションを作成しましたC

ツールバーを追加しました:

ここに画像の説明を入力

関連するコードのスニペットは次のとおりです。

GtkWidget *toolbar;
GtkToolItem *new;
GtkToolItem *open;
GtkToolItem *save;
GtkToolItem *sep;
GtkToolItem *exit;





...
toolbar = gtk_toolbar_new();    
gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);

gtk_container_set_border_width(GTK_CONTAINER(toolbar), 2);

new = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new, -1);

open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), open, -1);

save = gtk_tool_button_new_from_stock(GTK_STOCK_SAVE);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), save, -1);

sep = gtk_separator_tool_item_new();
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), sep, -1); 

exit = gtk_tool_button_new_from_stock(GTK_STOCK_QUIT);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), exit, -1); 


....



gtk_widget_show_all (window);

問題は、終了/開くを押したときにツールバーにリスナー(コールバック)を追加する方法です...

単一のボタンの場合、次のようなものがあります。

g_signal_connect (G_OBJECT (_button), "clicked", G_CALLBACK (on_button_clicked), NULL);

void on_button_clicked(){...}

私はそれを行う方法を知っていますgtk_ui_managerが、複雑すぎます。

助けてください

4

1 に答える 1

1

メインウィンドウにありますか?

g_signal_connect(G_OBJECT(exit), "clicked", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

詳細:http://zetcode.com/tutorials/gtktutorial/menusandtoolbars/

于 2012-12-16T12:30:58.880 に答える