我正在使用 GTK+2.0 和 Cairo 在 C 中编写自定义应用程序。仅出于学习目的(如果成功,则用于部署),我希望重新创建类似于当鼠标移动到窗口上的给定区域时出现的覆盖工具栏/小部件(如果术语不正确,我很抱歉) , 并在鼠标移开时消失。正如我想象的那样,工具栏应该出现在现有小部件的顶部,而不会取代它们或以任何方式改变小部件包装。有没有可能实现?如果是,您能否指出相关的教程/示例和/或概述一种方法来做同样的事情?提前致谢。
问问题
1851 次
2 回答
6
不确定这在 GTK2 中是否容易实现。但是,我最近了解到,有一个 GtkLayout 小部件允许小部件的像素精确渲染,因此您甚至可以将一些小部件显示在其他小部件之上。或者您可以实现自己的容器小部件。
请注意,从 GTK3 开始,GtkOverlay 似乎可以满足您的需求。
你也可以看看 Clutter,它可能允许这样做。此外,还有为 GTK 4 合并 GTK 和 Clutter 的项目。
于 2013-01-18T09:42:54.417 回答
2
鲜为人知的GtkHandleBox能够做你想做的事。我必须警告你它在 GTK+3 中已被弃用,因为它违背了通常的 UI 方向。此外,正确的定位将受制于 Windows 管理器的怪癖,所以我预计在这方面会出现一些问题。
于 2013-01-19T01:06:12.840 回答