首页 > 解决方案 > GtkAlignment 一次只能包含一个小部件

问题描述

我在 Glade 中做了一个 GUI。我有这种结构:

_ 一个名为 winTimer 的 GtkWindow
__ 一个 GtkVBox
___ 一个 GtkHBox
____ 一个名为 alignTimer 的 GtkAlignment,里面什么都没有

我的结构 (gif)

我愿意:

controlli->alignTimer=GTK_WIDGET(gtk_builder_get_object(builder,"alignTimer"));
controlli->pbTimerComposito = gdk_pixbuf_new(GDK_COLORSPACE_RGB,0,8,320,200);
controlli->imgTimer = GTK_WIDGET(gtk_image_new_from_pixbuf(controlli->pbTimerComposito));
gtk_container_add(GTK_CONTAINER(controlli->alignTimer),controlli->imgTimer); /* warning */
gtk_widget_show(controlli->imgTimer);

其中controlli是一个指向结构的指针,该结构除其他外具有:

GtkWidget *alignTimer;
GdkPixbuf *pbTimerComposito;
GtkWidget *imgTimer;

我在运行时得到这个:
Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkAlignment,但作为 GtkBin 子类,GtkAlignment 一次只能包含一个小部件;它已经包含一个 GtkImage 类型的小部件

但这不是真的!这是我要添加的第一个也是唯一一个小部件!发生了什么?我在我的应用程序的另一部分做了完全相同的事情,多年来它一直运行良好。

我的环境:
- Windows XP SP3
- MinGW
- GCC 4.8.1
- GTK 2.24.10

PS 我知道我使用的是旧版本的 GTK、已弃用的小部件和古老的操作系统,但我编写代码只是为了好玩,所以我可以接受。任何帮助将不胜感激。

标签: cgtkgladegtk2

解决方案


问题解决了(或者说,没有问题)。
包含我上面发布的代码的函数被调用了两次。给自己打脸。


推荐阅读