将网格叠加到 QFrame 上
Overlay grid onto QFrame
所以,我有一个 QFrame
,其布局设置为 QGridLayout
。
在这个布局中,我有 16 行的图块,代表某种调色板。
我希望这个瓷砖网格由线分隔,就像网格应该的那样。我可以使用方块的 paintEvent
s.
轻松做到这一点
然而,明显的问题是在瓷砖之间,线条加倍了。当我将其扩展到其他应用程序时,差异变得更加明显。
那么,有没有办法为我的 QFrame
创建网格线叠加层?我考虑过将整个事情转换为 view/scene 解决方案,并使用 drawForeground
,但这似乎是对范式的完全不恰当的使用。
感谢您的帮助!
将 QFrame
放入 QGridLayout
,然后放入具有透明背景的自定义 QWidget
和 paintEvent
在其顶部绘制网格(相同 QGridLayout
位置).
或者因为您已经有了 QGridLayout
,只需将自定义 QWidget
放入其中,在方块上方 filling the entire grid.
旁注,您确定要 QFrame
吗,还是 QWidget
就可以?只是说,因为有了 QFrame
,您会看到 1990 年代对您的 UI 的看法...如果您确实想要那个,那就继续吧,只是说。
所以,我有一个 QFrame
,其布局设置为 QGridLayout
。
在这个布局中,我有 16 行的图块,代表某种调色板。
我希望这个瓷砖网格由线分隔,就像网格应该的那样。我可以使用方块的 paintEvent
s.
然而,明显的问题是在瓷砖之间,线条加倍了。当我将其扩展到其他应用程序时,差异变得更加明显。
那么,有没有办法为我的 QFrame
创建网格线叠加层?我考虑过将整个事情转换为 view/scene 解决方案,并使用 drawForeground
,但这似乎是对范式的完全不恰当的使用。
感谢您的帮助!
将 QFrame
放入 QGridLayout
,然后放入具有透明背景的自定义 QWidget
和 paintEvent
在其顶部绘制网格(相同 QGridLayout
位置).
或者因为您已经有了 QGridLayout
,只需将自定义 QWidget
放入其中,在方块上方 filling the entire grid.
旁注,您确定要 QFrame
吗,还是 QWidget
就可以?只是说,因为有了 QFrame
,您会看到 1990 年代对您的 UI 的看法...如果您确实想要那个,那就继续吧,只是说。