【问题标题】:Positioning widgets to QBoxLayout将小部件定位到 QBoxLayout
【发布时间】:2013-03-19 22:48:05
【问题描述】:

我正在使用 PySide 构建一个 GUI

我有一个 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)

【问题讨论】:

  • 为什么不用Qt Designer?
  • @ivica 我的实现快完成了,但我不知道如何使用 Qt Designer
  • 我相信学习如何使用它(它真的很简单)比手动输入每个布局更容易。这当然是你的选择。

标签: python pyqt pyside


【解决方案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

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

【讨论】:

  • 它不工作它显示以下 AttributeError: 'PySide.QtGui.QGridLayout' object has no attribute 'setMinimumColumnWidth'
  • 对不起,我写错了。该方法实际上被称为'setColumnMinimumWidth'。但这当然是图书馆制造商的错,他们应该像我第一次写的那样做! :d。
猜你喜欢
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 2021-03-17
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多