将小部件定位到QBoxLayout

时间:2013-03-19 09:34:31

标签: python pyqt pyside

我正在使用PySide构建GUI

我有一个QBoxLayout,我已经添加了一些Widgets,问题是我想控制他们无法做到的位置,我尝试了文档页面中提供的内容

addWidget( widg, int streatch, int alignment)

但它没有给我我想要的东西所以我想要的最终外观就是这样的


----------------------------------------------- ------------- ^^ **                                                                 &安培;&安培;&安培;&安培;&安培;&安培;

如果 _ ___ 行代表整个窗口/布局 我想在我的代码中命名为wid的小部件就像虚线-------- 和滑块在^^的同一个地方 最后按钮位于&&&&&&

我的第二个问题是我想在滑块和como-box中添加一些标签,我想确定一下我该怎么做

这是我的代码

    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)

1 个答案:

答案 0 :(得分:1)

你可以使用QGridLayout而不是QHBoxLayout,并使用QGridLayout的setColumnMinimumWidth方法来指定你所需的小部件宽度。就像那样:

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

然后继续添加其余的小部件。