2013-03-19 39 views
0

我使用PySide建立一個GUI定位小部件QBoxLayout

我有一個QBoxLayout,我有一些小工具添加到,問題是我想控制自己的位置,我是不是能夠做到的,我試過什麼已經在文檔頁面提供的是

addWidget(widg, int streatch, int alignment) 

但它沒有給我什麼,我想,這樣我想是這樣的


最後一下------ ------ ------------------------------------------------ ^^ ** & & & & & &

如果線路_ ___代表整個窗口/佈局 我想這是我在我的代碼名爲wid要像虛線小部件 - ------- 和滑塊在^^ 和最後的按鈕將在& & & & &

我的第二個問題是,我想一些標籤添加到滑塊和科莫盒,我想,以確定位置我怎麼能做到這一點

這裏是我的代碼

self.wid = GLWidget() 

    mainLayout = QtGui.QHBoxLayout() 
    mainLayout.addWidget(self.wid) 



    self.xSlider = self.createSlider() 
    self.ySlider = self.createSlider() 

    mainLayout.addWidget(self.xSlider) 
    mainLayout.addWidget(self.ySlider) 

    self.btn = QtGui.QPushButton('OK') 
    self.btn.resize(self.btn.sizeHint()) 

    mainLayout.addWidget(self.btn) 


    self.combo = QtGui.QComboBox() 

    mainLayout.addWidget(self.combo) 

    self.setLayout(mainLayout) 
    self.setWindowTitle(self.tr("Hello GL")) 
    self.setGeometry(350, 350, 1000, 1000) 
+0

爲什麼不使用Qt Designer? – ivica 2013-03-19 09:39:57

+0

@ivica我幾乎完成了我的實現,我不知道如何使用Qt設計器 – Lily 2013-03-19 10:46:39

+0

我相信學習如何使用它(這非常簡單)比手工輸入每個佈局更容易。這當然是你的選擇。 – ivica 2013-03-19 14:52:16

回答

1

你可以使用,而不是一個QHBoxLayout,負責和QGridLayout使用QGridLayout的setColumnMinimumWidth方法,你的widget需要width.Like是口述:

mainLayout = QtGui.QGridLayout() 
mainLayout.setColumnMinimumWidth(0, 100) #set column 0 width to 100 pixels 
button = QtGui.QPushButton('OK') 
mainLayout.addWidget(button, 0, 0) #adds the button to the widened column 

然後繼續添加其餘的小部件。

+0

它不工作它顯示以下AttributeError:'PySide.QtGui.QGridLayout'對象沒有屬性'setMinimumColumnWidth' – Lily 2013-03-19 13:11:42

+1

對不起,我寫錯了。該方法實際上被稱爲'setColumnMinimumWidth'.But它是圖書館製造商的錯,他們應該像我第一次寫它一樣! :d。 – MadeOfAir 2013-03-19 14:50:15

+0

感謝它正在工作=) – Lily 2013-03-20 07:46:12