因此,我有一个QFrame,它的布局设置为QGridLayout。
在这个布局中,我有16行的瓷砖,它们代表了一个调色板。
我希望这个瓷砖网格被线分开,就像网格应该分开一样。使用tiles的paintEvent,我可以很容易地做到这一点。

然而,明显的问题是,在瓷砖之间,线是加倍的。当我将其扩展到其他应用程序时,这种差异就更加明显了。
那么,有没有办法为我的QFrame创建一个网格线覆盖呢?我已经考虑过将整个过程转换为视图/场景解决方案,并使用drawForeground,但是这似乎是对范例的完全不恰当的使用。
谢谢你的帮助!
发布于 2020-03-24 06:26:47
将QFrame放入QGridLayout中,然后将具有透明背景的自定义QWidget和在其之上绘制网格的paintEvent放在其中(相同的QGridLayout位置)。
或者既然您已经有了一个QGridLayout,只需将自定义的QWidget放在tiles之上的填充整个网格中即可。
顺便提一句,你确定你想要QFrame在那里,还是只想要QWidget就行了?我只想说,因为有了QFrame,你就能看到1990年的用户界面.如果你真的想这么做,那就说吧。
https://stackoverflow.com/questions/60822971
复制相似问题