2013-11-23 44 views
1

我使用gtk3在Anjuta的與C,用我的代碼如下切出的版本:菜單按鍵不靈

u.wMenuButton = gtk_menu_button_new(); 
u.weaponMenu = gtk_menu_new(); 
u.weaponCI = gtk_menu_item_new(); 
u.weapon = gtk_button_new_with_label("Punch"); 

gtk_box_pack_start(GTK_BOX(u.horizontal), u.wMenuButton, TRUE, TRUE, 1); 
gtk_menu_button_set_popup (GTK_MENU_BUTTON(u.wMenuButton), u.weaponMenu); 
gtk_container_add (GTK_CONTAINER(u.weaponCI), u.weapon); 
gtk_menu_attach(GTK_MENU(u.weaponMenu), u.weaponCI, 0, 1, 0, 1); 

在我真正的代碼,唯一的區別是,我用了一個數組「武器」和「武器」的格式和每一個相同的上述格式。我試過不使用數組,但它沒有工作。我試過不同的menu_attach列和行組合,並沒有任何工作。我已經嘗試使用教程中指出的菜單欄,但它沒有任何區別。我已閱讀了文檔和一些教程,但我無法弄清楚我的錯誤。

我幾乎完全確定我的標題和一切都很好,除了菜單沒有任何問題。

但是,菜單仍然彈出爲一個很小的平面矩形,屏幕的一角沒有任何東西。

+0

任何人都可以幫忙嗎? – JiffyJuff

+0

Please?........ – JiffyJuff

回答

0

那麼,你試過打電話給gtk_widget_show_all嗎?

+0

非常感謝!我認爲在窗口上調用gtk_widget_show_all會顯示菜單...愚蠢的我。 – JiffyJuff

+0

'gtk_widget_show_all'傳播給孩子,所以你就在那裏。但是,如果在窗口中調用'gtk_widget_show_all'之前尚未將窗口小部件添加到窗口,那麼如果以後再添加它,那麼您的窗口小部件將不會自動擁有「visible」屬性集。基本規則是:通過將正確容器中的所有小部件添加到*,然後*在頂級小部件(本例中爲GtkWindow)上調用'gtk_widget_show_all'來創建小部件樹。 – liberforce