将网格叠加到 QFrame 上

Overlay grid onto QFrame

所以,我有一个 QFrame,其布局设置为 QGridLayout

在这个布局中,我有 16 行的图块,代表某种调色板。

我希望这个瓷砖网格由线分隔,就像网格应该的那样。我可以使用方块的 paintEvents.

轻松做到这一点

然而,明显的问题是在瓷砖之间,线条加倍了。当我将其扩展到其他应用程序时,差异变得更加明显。

那么,有没有办法为我的 QFrame 创建网格线叠加层?我考虑过将整个事情转换为 view/scene 解决方案,并使用 drawForeground,但这似乎是对范式的完全不恰当的使用。

感谢您的帮助!

QFrame 放入 QGridLayout,然后放入具有透明背景的自定义 QWidgetpaintEvent 在其顶部绘制网格(相同 QGridLayout 位置).

或者因为您已经有了 QGridLayout,只需将自定义 QWidget 放入其中,在方块上方 filling the entire grid.


旁注,您确定要 QFrame 吗,还是 QWidget 就可以?只是说,因为有了 QFrame,您会看到 1990 年代对您的 UI 的看法...如果您确实想要那个,那就继续吧,只是说。