2013-11-23 5 views
1
내 다음 코드 컷 아웃 버전, C와 Anjuta에서 gtk3을 사용하고

:메뉴 버튼

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); 

내 실제 코드에서 유일한 차이점은 내가 배열을 사용하는 것입니다 "weaponCI"와 "weapon"을 사용하고 위와 동일한 형식을 취합니다. 배열을 사용하지 않으려 고 시도했지만 작동하지 않았습니다. 나는 다른 menu_attach 열과 행 조합을 시도했지만 아무 것도 효과가 없었다. 나는 자습서에 표시된대로 메뉴 모음을 사용하여 시도했지만 차이는 없습니다. 설명서 및 튜토리얼을 검토 한 결과 잘못된 점을 파악할 수 없습니다.

나는 내 머리글과 모든 것이 잘되고 메뉴가 잘못되어 있다는 것을 거의 완전히 확신했다.

그러나 메뉴는 화면의 모서리에 아무 것도없는 작은 편평한 사각형으로 계속 나타납니다.

+0

아무도 도와 줄 수 있습니까? – JiffyJuff

+0

제발? ........ – 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