Python中文
首页
教程
问答
标签
搜索
登录
注册
PyQt4 QLayout间距中的歧义
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个QHBoxLayout,一个接一个地添加小部件。<br/> 另一种方法是添加一个自定义小部件,而不是QLabel(重复)。<br/> QHBoxLayout属于QGroupBox。在</p> <p>但是,我注意到,当布局中添加的小部件很少时,自定义小部件和QLabel之间的间距是“不规则的”。在</p> <p>我希望qlabel集中在定制小部件之间的间隙中,但是qlabel只会随着添加更多的小部件而接近中心。在</p> <p>这些截图显示了这两个案例。<br/> 所需的案例(仅在布局中有大量小部件时发生),<br/> 以及不希望出现的情况(当布局中有小部件时发生)。在</p> <p><img src="https://i.stack.imgur.com/KeoHF.png" alt="Irregular Spacing in the bottom case, fine in the top. "/></p> <p>正如您在下面的例子中所看到的,qlabel并不是在定制小部件之间居中的。相反,他们非常向右!在</p> <p>是什么导致了这种行为??在</p> <p>我相信QGroupBox有一个居中(水平)对齐方式,QLabel的固定宽度为10(或者对于'->;'QLabel为20)像素(以避免难看的重叠)。在</p> <p>任何帮助都将不胜感激!<br/> 谢谢!在</p> <p>规格:<br/> python 2.7.1<br/> PyQt4<br/> Windows 7系统</p> <p>QHBoxLayout的实例化完全正常,与所有示例相似。<br/> 这是填充布局的代码。在</p> <pre><code>for i in range (0,len(Reactants)): self.WidgetHouse.Reaction_Element_Layout.addWidget(eval('self.OverallContainer_Reactants.Reactant_'+str(i))) # self.WidgetHouse.Reaction_Element_Layout is the QHBoxLayout # self.OverallContainer_Reactants.Reactant_'+str(i) is a Custom Widget if i != (len(Reactants)-1): tmp = QtGui.QLabel('+') tmp.setFixedWidth(10) tmp.setAlignment(QtCore.Qt.AlignCenter) self.WidgetHouse.Reaction_Element_Layout.addWidget(tmp) else: tmp = QtGui.QLabel('->') tmp.setFixedWidth(20) tmp.setAlignment(QtCore.Qt.AlignCenter) self.WidgetHouse.Reaction_Element_Layout.addWidget(tmp) </code></pre> <h2><strong>编辑:</strong></h2> <p>设置QLabels的固定宽度(tmp.setFixedWidth(10) )是“右锚定”的来源。<br/> 但是,不设置固定的宽度会导致布局中的qlabel和自定义小部件专用于相同的空间,从而导致qlabel和自定义小部件重叠。在</p> <p><img src="https://i.stack.imgur.com/L7GBo.png" alt="Fixed Width Labels vs Layout modulated widths"/></p> <p>与上述代码相同,排除'tmp.setFixedWidt(10) '</p> <p>我能做些什么来阻止这一切并不可怕?<br/> 我能把标签从前面移到后面吗?<br/> (在将所有内容添加到布局后,对所有自定义窗口小部件调用.raise_u()无效)</p> <p>(或者,我是否需要根据布局中的小部件数量手动计算标签的适当宽度?恶心!)在</p> <h2><strong>另一个编辑:</strong></h2> <p>进展情况:</p> <p>我不会更改QLabels的最大/最小(或固定)宽度,但会将它们的对齐方式设置为居中。<br/> 相反,我设置了自定义控件的最小宽度。<br/> 这修复了明显的“重叠”(实际上不是这样)并使标签看起来“更居中”。在</p> <p>但是,正如您所看到的,qlabel仍然没有完全居中-太右了。<br/> 如果我不在qlabel上设置中心对齐,它们就太左了。在</p> <p>现在有什么问题??在</p> <p><img src="https://i.stack.imgur.com/D9LKk.png" alt="Overlapping solved, anchoring still an issue"/></p> <p>(我没有在标签上设置最大宽度)</p> <p>谢谢大家的帮助!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>所有问题的解决方案:</p> <p><strong>给自定义控件一个固定的宽度。</strong></p> <p>产生完全居中的控件,而不是“重叠”控件。<br/> :)</p> <p>谢谢你们的帮助!在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
5 回答
如何添加表示整数的擦边字符串?
4 回答
如何添加要在Bokeh中使用的新font.ttf文件?
10 回答
如何添加要显示的矩阵XY轴编号和XY轴
1 回答
如何添加计数?
1 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
5 回答
如何添加计数器来跟踪while循环中的月份和年份?
1 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
3 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
10 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
6 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
3 回答
如何添加谷歌地点自动完成到Flask?
6 回答
如何添加超时、python discord bot
10 回答
如何添加超过1dp的检查
2 回答
如何添加距离方法
5 回答
如何添加跟随游戏的敌人精灵
5 回答
如何添加路径以便python可以找到程序?
9 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答