我试图在 C 中的 GtkDrawingArea 上放置一个按钮(GUI 是从一个 gade 文件生成的)。在 Glade 中,我将 GtkDrawingArea 和 GtkButton 都放入了 GtkFixed 容器中。我可以单击按钮应该在的位置,成功调用按钮“单击”事件处理程序,但按钮隐藏在 GtkDrawingArea 后面。在绘图区域的“暴露事件”处理程序中,我有这个:
gboolean on_drawArea_expose_event(GtkWidget *widget, GdkEventExpose *expose, gpointer data)
{
// draw on drawingArea
gdk_window_restack( button->window, widget->window, TRUE);
return FALSE;
}
我收到以下错误:
gdk_window_restack: assertion 'gdk_window_is_toplevel (GDK_WINDOW_OBJECT (sibling)' failed
我试过:
gdk_window_raise( button->window);
除了重新堆叠之外,这也没有引发任何错误,但它也不起作用。
有任何想法吗?提前致谢,