如何让小部件彼此重叠。
最低的应该是图像,上面的休息可以是其他小部件,如按钮。
答案 0 :(得分:4)
对较大(父)窗口小部件进行子类化。在create()
方法或构造函数中,将布局(或容器)窗口小部件添加到父窗口小部件,然后将其他窗口小部件插入到容器中。现在威胁这个新的子类,好像它是一个单一但专门的超类版本。
Window
是父窗口小部件的示例,而Fixed
是示例容器。孩子可以EventBox
封闭Image
。所有这些的合成是一个新的窗口对象,其中包含可以单击的图片。
对于窗口标题栏的外观,使用像素图背景和按钮,请尝试使用Window
和Image
容器来Fixed
按钮。 Fixed
和Image
应该能够重叠,因为Fixed
是透明的,Image
没有Window
。
如果Buttons
确实是您需要的,请查看GTK Containers列表中的按钮框和工具栏。可以向其中一个添加Image
背景。
另一种方法涉及 Alignment Widget (来自同一列表)。它指定较小的小部件按比例放置的位置和大小。
我假设,OOP,但如果不是,只需从一个函数组织小部件的创建。我在Haskell( Gtk2Hs )和 Guile Gnome平台(有和没有OOP)中功能性地创建了复合小部件