有没有办法将小部件移动到容器之外而不调整大小?

时间:2017-05-31 09:53:54

标签: gtk gtk3

我正在使用GTK3作为渲染技术进行游戏(糟糕的想法,但这是一个学校项目)。

我的游戏对象由图像小部件组成,并放置在固定容器中。它工作得很好,但是当我移动小部件右侧或底部边框时,窗口会随之自动增长。

我希望窗口保持在山姆大小,如果窗口小部件离开其区域并变得不可见,则会发生事件。当我将小部件移过上边框或左边框时,它可以正常工作。

我尝试使用 gtk_widget_set_vexpand gtk_widget_set_hexpand 。我的窗口设置为不可调整大小( gtk_window_set_resizable )。

有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

这不是使用GTK +的正确方法。 GTK +用于在GUI程序中布置小部件。

为2D元素设置动画有更好的选择。与GTK +本身一起使用的是the Clutter library。如果您愿意,还可以集成SDL或OpenGL等。

话虽这么说,您也可以使用GtkLayout而不是GtkFixed,或者将GtkFixed放在GtkScrolledWindow中并隐藏滚动条并设置滚动策略以防止滚动。它仍然在技术上被误用,事实上GtkFixed(也可能是GtkLayout,但文档不会说)除非绝对必要,否则不应再被使用,因为它不会给你自动支持对于棘手的UI布局问题,但它没有额外的依赖关系。