【发布时间】:2015-05-08 13:42:56
【问题描述】:
我正在 PyQt5 中构建一个 GUI。它的结构将如附图所示。
我需要的是在调整窗口大小时进行管理:
- 蓝色区域水平和垂直调整大小
- 读取区域和绿色区域仅垂直调整大小
- 紫色区域仅水平调整大小
- 用户可以根据需要手动更改小部件的大小,但在调整整个窗口大小时应保持其宽度/高度
下面是这个例子的代码:
def initUI(self):
topHBoxLayout = QHBoxLayout(self)
topHBoxLayout.setContentsMargins(0,0,0,0)
sstFrame = QFrame()
sstFrame.setMinimumSize(QSize(100, 100))
self.colorFrame(sstFrame, 'red')
objectivesFrame = QFrame()
objectivesFrame.setMinimumSize(QSize(100, 100))
self.colorFrame(objectivesFrame, 'green')
wsTop = QFrame()
wsTop.setMinimumSize(QSize(100, 100))
self.colorFrame(wsTop, 'blue')
wsBottom = QFrame()
wsBottom.setMinimumSize(QSize(100, 100))
self.colorFrame(wsBottom, 'purple')
workspaceSplitter = QSplitter(Qt.Vertical)
workspaceSplitter.addWidget(wsTop)
workspaceSplitter.addWidget(wsBottom)
mainSplitter = QSplitter(Qt.Horizontal)
mainSplitter.addWidget(sstFrame)
mainSplitter.addWidget(objectivesFrame)
mainSplitter.addWidget(workspaceSplitter)
topHBoxLayout.addWidget(mainSplitter)
self.setLayout(topHBoxLayout)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('')
self.show()
感谢您的任何建议,我自己无法弄清楚。
【问题讨论】:
-
您是否考虑过使用 DockWidgets 而不仅仅是拆分器?
-
不,我没有。我找到了解决问题的方法,但无论如何感谢您的提示。我在官方示例中找到了 DockWidgets,它看起来确实很有趣。谢谢。
标签: python qt layout resize pyqt