繁体   English   中英

如何使gtk代码正常工作?

[英]How do I make the gtk code work?

vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);
...
frame = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(window), frame);
...

上面的代码将在下面生成警告:

Gtk-警告**:尝试将类型为GtkFixed的小部件添加到GtkWindow中,但是作为GtkBin子类,GtkWindow一次只能包含一个小部件。 它已经包含类型为GtkVBox的小部件

窗口中未显示结果frame

如何同时显示vboxframe

将它们都放在周围的vbox中(如果您想垂直堆叠它们):

parentVbox = gtk_vbox_new(FALSE, 0);

vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(parentVbox), vbox, TRUE, TRUE, 0);
...
frame = gtk_fixed_new();
gtk_box_pack_start(GTK_BOX(parentVbox), frame, TRUE, 0);
...
gtk_container_add(GTK_CONTAINER(window), parentVbox);

您遇到的错误是因为每个窗口小部件只能包含一个窗口小部件(您希望窗口包含vbox和框架),即使其中包含的窗口小部件可能是一个复杂且包含多个其他窗口小部件的窗口。

要将小部件放在盒子中,必须使用gtk_box_pack_start()。 Gnome参考手册链接: http : //library.gnome.org/devel/gtk/stable/GtkBox.html#gtk-box-pack-start

vbox = gtk_vbox_new(FALSE, 0);
frame = gtk_fixed_new();
gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); //the frame goes inside vbox
...
gtk_container_add(GTK_CONTAINER(window), vbox); //the vbox is contained by window

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM