【发布时间】:2019-12-08 18:44:48
【问题描述】:
我有以下小部件结构:
w: GtkWindow
f: GtkFixed
da: GtkDrawingArea
cf: GtkFixed
cda: GtkDrawingArea
i: GtkIcon
s1: GtkAdjustment
s2: GtkAdjustment
它们按插入顺序列出(gtk_container_add 插入 w,gtk_fixed_put 用于所有其他 isertions)。在放置和调整所有小部件后,cf 完全重叠 da; cda、i、s1 和 s2 不重叠并覆盖连续区域。
当这个结构暴露出来时,出现的顺序,从上到下,如下:
cda over
da over
s1, s2, i
da 被屏蔽,只接收暴露信号; da 在视觉上掩盖了 s1 和 s2,但鼠标事件由 s1 和 s2 发送和处理 - 事件有点“落入”da。
什么鬼? Gtk 怎么会粘在同级容器小部件和同级容器的孩子之间?(这让我猜是侄子和侄子哈哈 :)
我想要得到的是让 da 成为窗口 w 的“背景”;几个兄弟 GtkFixed 最终将被插入到 f 中,它们之间可能存在一些间隙,我需要在背景 da 上绘制,我完全可以接受 da 的某些部分被其他小部件遮挡。我不想为每个间隙创建多个 DrawingArea。
我想我所描述的是通常的 Z 排序,由于某种原因在我的情况下不起作用。哦,我一定会使用 Gtk 2。
【问题讨论】: