【发布时间】:2014-01-29 12:41:13
【问题描述】:
在 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 要求的屏幕截图(我在paint :D 中编辑过):
【问题讨论】:
-
可以发一下
resize调用前后的截图吗? -
@qurban 请看一下我的问题中的编辑
-
使用
setFixedSize()而不是resize()每次你想调整小部件的大小,正如ekhumoro 在他的回答中所建议的那样。此解决方案符合您的要求。