在QtDesigner中,我创建了具有水平布局的QFrame(layoutSpacing为5)。其中有3个QLineEdit小部件,具有固定大小和水平间隔,扩展尺寸(因此当更改框架尺寸时只更改间隔件)
让我们说lineEdits的初始大小是100x30。我需要更改lineEdit小部件的大小,我这样做的代码如下:
self.__ui.lineEdit1.resize(40, 30)
self.__ui.lineEdit2.resize(140, 30)
self.__ui.lineEdit3.resize(80, 30)
它们的大小已经改变但是它们的X位置不是这样我在前两个(65)之间得到很大的空间,而lineEdit2在lineEdit3之下。
我应该以某种方式更新布局或框架吗?我在提到的代码之前和之后尝试过layout.setSpacing(5),但在这种情况下,lineEdit的大小没有改变(它的初始值为100)
编辑这里是Qurban要求的截图(我在油漆中编辑:D):
答案 0 :(得分:1)
使用setFixedSize方法:
self.__ui.lineEdit1.setFixedSize(40, 30)
self.__ui.lineEdit2.setFixedSize(140, 30)
self.__ui.lineEdit3.setFixedSize(80, 30)
您可能还需要考虑使用水平布局的 layoutStretch 属性。这允许您设置每行编辑所允许的空间比例。因此,如果将其设置为“1,4,2”,则第二行编辑将获得四倍于第一行的空间,第三行将获得两倍的空间。关于这一点的好处是它可以在调整主窗口大小时自动缩放。