2013-01-17 61 views
4

我正在使用GTK + 2.0和开罗在C中编写自定义应用程序。仅仅为了学习目的(如果成功,然后进行部署),我希望重新创建类似于鼠标移动到窗口上的给定区域时出现的类似于覆盖工具栏/控件(如果术语不正确)的东西(对不起,如果术语不正确) ,并在鼠标移开时消失。正如我想的那样,工具栏应该出现在现有小部件的顶部,而不会以任何方式取代它们或更改小部件包装。是否有可能完成?如果是的话,你能否指点我相关的教程/例子和/或概述一种方法来做同样的事情? 在此先感谢。覆盖GTK工具栏/部件

回答

6

不确定这在GTK2中很容易实现。不过,我最近了解到,有一个GtkLayout小部件可以像素精确地呈现小部件,所以您甚至可以在其他小部件上显示一些小部件。或者你可以实现你自己的容器小部件。

请注意,自GTK3以来,有GtkOverlay似乎做你想做的。

你也可以看看Clutter,它可能会允许这样做。此外,还有GTK和Clutter合并为GTK 4的项目。

+0

感谢您的回应:)。 – Chatter

2

鲜为人知的GtkHandleBox能够做你想做的事。我必须警告你,它在GTK + 3中被弃用,因为它违背了通常的UI方向。此外,正确的定位将受到Windows管理员怪癖的影响,所以我期望在这方面有一些问题。

+0

我认为将代码导出到GTK3将是一个好主意。无论如何感谢信息。 – Chatter

+1

@Chatter:GtkHandleBox不是GTK3专用的,它也可以在GTK2上使用,但它已经在GTK3中被弃用了。 – liberforce