2013-03-19 33 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