2013-05-09 52 views
2

這裏所有三個按鈕的大小都是相同的,如何增加只有第一個按鈕的大小,以便佔用比其他兩個按鈕更多的空間。如何在PyQt4的水平佈局中拉伸單個小部件?

from PyQt4 import QtGui 
import sys 

class AllWidgets(QtGui.QWidget): 

    def __init__(self): 
     super(AllWidgets, self).__init__() 
     layout = QtGui.QHBoxLayout() 
     #code for pushbutton 1 
     pushbutton_1 = QtGui.QPushButton() 
     pushbutton_1.setText('First') 
     layout.addWidget(pushbutton_1) 
     #code for pushbutton 2 
     pushbutton_2 = QtGui.QPushButton() 
     pushbutton_2.setText('Second') 
     layout.addWidget(pushbutton_2) 
     #code for pushbutton 3 
     pushbutton_3 = QtGui.QPushButton() 
     pushbutton_3.setText('Third') 
     layout.addWidget(pushbutton_3) 
     self.setLayout(layout) 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    display = AllWidgets() 
    display.show() 
    sys.exit(app.exec_()) 

回答

4

addWigdet()的第二個(可選)參數是strech因子。如果你想第一個按鈕拉伸,簡單地做:

layout.addWidget(pushbutton_1, 1) 

如果希望所有按鍵得以舒展,但第一個要大些,你只需要使用不同的拉伸因素:

layout.addWidget(pushbutton_1, 2) 
layout.addWidget(pushbutton_2, 1) 
layout.addWidget(pushbutton_3, 1) 
+0

謝謝,但是這種拉伸只是在我最大化窗口之後纔會發生,我能做些什麼,使得第一次在沒有最大化時顯示輸出,第一個按鈕佔據更多的空間? – user1994124 2013-05-09 19:00:54

+0

您可以嘗試:'pushbutton_1.setMinimumWidth()',以所需的最小寬度(以像素爲單位)。或者,如果您願意,也可以使用'self.setMinimumWidth()'設置窗口的最小寬度。 – 2013-05-10 00:19:22