2014-01-10 139 views
1

在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再次)

編輯這裏是截圖(我在油漆編輯:d )作爲巡禮紀念日要求:enter image description here

+0

你可以在調用'resize'之前和之後發佈截圖嗎? – qurban

+0

@qurban請看看編輯我的問題 – Aleksandar

+1

每次你想調整窗口小部件的大小時,使用'setFixedSize()'而不是'resize()',正如ekhumoro在他的回答中所建議的那樣。該解決方案符合您的要求。 – qurban

回答

1

使用setFixedSize方法:

self.__ui.lineEdit1.setFixedSize(40, 30) 
    self.__ui.lineEdit2.setFixedSize(140, 30) 
    self.__ui.lineEdit3.setFixedSize(80, 30) 

您也可能要考慮使用水平佈局的layoutStretch財產。這使您可以設置每行編輯所允許的空間比例。所以如果你把它設置爲「1,4,2」,那麼第二行編輯會得到4倍於第一行的空間,而第三行將會增加兩倍。關於這一點的好處是它在主窗口調整大小時自動縮放。

+0

就是這樣,謝謝 – Aleksandar