Python中文
首页
教程
问答
标签
搜索
登录
注册
如何阻止自定义小部件在PyQt5中扩展?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试制作一个包含许多其他小部件的小部件,但我在调整窗口大小方面一直存在问题:即使我“告诉”它不要,小部件也会不断扩展。以下是我的最简单的例子:</p> <pre class="lang-py prettyprint-override"><code>from PyQt5 import QtWidgets, QtGui, QtCore class CustomWidget(QtWidgets.QWidget): def __init__(self): super().__init__() self.layout = QtWidgets.QGridLayout() self.button1 = QtWidgets.QPushButton("Button A") self.button2 = QtWidgets.QPushButton("Button B") self.label1 = QtWidgets.QLabel("Long label that can span multiple columns") self.layout.addWidget(self.button1, 0, 0) self.layout.addWidget(self.button2, 0, 1) self.layout.addWidget(self.label1, 1, 0, 1, 2) self.setLayout(self.layout) class App(QtWidgets.QWidget): def __init__(self): super().__init__() self.cw = CustomWidget() self.layout = QtWidgets.QVBoxLayout() self.layout.addWidget(self.cw) self.setLayout(self.layout) self.show() QtWidgets.QApplication.setStyle(QtWidgets.QStyleFactory.create("Fusion")) app = QtWidgets.QApplication([]) win = App() status = app.exec_() </code></pre> <p>但是,如果我调整窗口的大小,那么所有的按钮和标签就会分散在屏幕上,这不是我想要的</p> <p>我试过:</p> <ul> <li><p>设置固定大小:不起作用,因为标签文本可以有不同的长度,我希望小部件相应地调整大小(但尽量保持小)</p> </li> <li><p><code>self.setFixedSize(self.size())</code>什么也没做,有时会让事情变得更糟</p> </li> <li><p><code>self.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)</code>或任何其他大小策略似乎都不起作用</p> </li> </ul> <p>TL;DR我希望我的小部件缩小,即使有空的空间,但我不想设置固定的大小</p> <p>编辑:</p> <p>我通过将<code>alignment=QtCore.Qt.AlignLeft</code>传递给所有<code>self.layout.addWidget</code>调用,部分地解决了这个问题。这并不能完全解决问题,但可能是朝着正确方向迈出的一步</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我也有同样的问题。我通过将最小和最大大小的值设置为等于100来解决这个问题</p> <p>如果要缩小小部件,请将“最小值”设置为0,并将“最大值”设置为所需大小,以启动显示。它不会膨胀而是收缩</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
10 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
10 回答
无法使用Django+nginx上载媒体文件
4 回答
无法使用Django1.6导入名称模式
7 回答
无法使用Django1.7和mongodb登录管理站点
2 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
9 回答
无法使用Djangockedi验证CBV中的字段
4 回答
无法使用Djangocketditor上载图像(错误400)
4 回答
无法使用Djangocron进行函数调用
3 回答
无法使用Djangofiler djang上载文件
9 回答
无法使用Djangokronos
2 回答
无法使用Djangomssql provid
10 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
1 回答
无法使用Djangomssq迁移Django数据库
9 回答
无法使用Djangonox创建用户
9 回答
无法使用Djangopyodb从Django查询SQL Server
8 回答
无法使用Djangopython3ldap连接到ldap
7 回答
无法使用Djangoredis连接到redis
7 回答
无法使用Django中的FK创建新表
3 回答