我正在使用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()
感谢您提供的任何建议,我自己无法理解。