我是小鱼,今天是2022年6月8日
最近其实还是一直在研究之前的扫雷,在使用PyQt6的时候遇到了网格布局的问题,之前也遇到过,因为放入的内容都是一些文本标签或者输入框,没那么敏感。但是在放入扫雷的泥土方块的时候就显得敏感了。
简单说明一下,我是把所有的泥土都放在一个QFrame中的,然后又使用了QSS来设置的QFrame的style
上图说明:(顺便说一下,这里的padding:0px根本没起作用,删了效果也一样)


当我加入网格布局的泥土之后,就变成了周围多了一圈边距,见下图。而且从下面这张图中能很明显看到,虽然我设置了Spacing为0,但好像泥土为了留出这些边距特意重叠起来了。这也是我刚刚说stylesheet中那句padding:0px没用的原因。后来发现这里的边距是QGridLayout自己的,这里还有一个命令是setContentsMargins,可以分别设置上下左右四个边距。

但一开始我不知道啊,于是我放大了窗口,放大了QFrame的尺寸,于是就出现了下图左这样的效果,丑啊!而且能很明显看到,虽然spacing为0,但是这些泥土的间隙还是因为QFrame变大而变大了,我在网上搜了好多,还给别的博主留言。我一直都没有找到解决方法。直到看到一篇文章中提到了setContentsMargins。于是我设置都为0,我一开始没有把窗口调小,于是出现了下图右这样的结果

在PyQt6扫雷项目中,遇到QGridLayout导致的QFrame内容周围出现边距问题。尝试设置QFrame的QSS padding无效,通过setContentsMargins设置边距,发现窗口大小变化会影响间距。最终通过setContentsMargins和删除setSpacing达到理想效果,但仍对QGridLayout的间距控制原理不明。寻求解答。

912

被折叠的 条评论
为什么被折叠?



