GtkAlignment一次只能包含一个小部件

时间:2018-11-26 15:31:32

标签: c gtk glade gtk2

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

_一个名为winTimer的GtkWindow
__一个GtkVBox
___ GtkHBox
____一个名为alignTimer的GtkAlignment,里面绝对没有任何内容。

My structure (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-警告**:试图将类型为GtkImage的小部件添加到GtkAlignment中,但是作为GtkBin子类,GtkAlignment一次只能包含一个小部件。它已经包含 GtkImage类型的小部件

但这不是事实!这是我要添加的第一个也是唯一的小部件!发生了什么?我在应用程序的另一部分做了完全相同的事情,并且已经运行了好几年了。

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

PS我知道我正在使用旧版本的GTK,不推荐使用的小部件和古老的OS,但是我只是出于娱乐目的而编写代码,因此我对此表示满意。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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