在 PyQt5 中连接多个 QSplitter
Concatenate Multiple QSplitter in PyQt5
我有 3 个 QWidget,我想连接它们。基本上它应该是这样的:
| |
| |
QWidget 1 | QWidget 2 | QWidget 3
| |
| |
QSplitter1 QSplitter2
到目前为止我尝试的是:
1) 将每个widget添加到对应的QSplitter
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
splitter1 = QSplitter(self)
splitter2 = QSplitter(self)
splitter1.addWidget(widget1)
splitter1.addWidget(widget2)
splitter2.addWidget(widget2)
splitter2.addWidget(widget3)
这里我得到一个可移动的分离器,应该是splitter2
2) 将完整的 splitter1 小部件作为第一个参数添加到 splitter2
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
splitter1 = QSplitter(self)
splitter2 = QSplitter(self)
splitter1.addWidget(widget1)
splitter1.addWidget(widget2)
splitter2.addWidget(splitter1)
splitter2.addWidget(widget3)
这里只有第一个分离器是活动的。
这样做的正确方法是什么?
QSplitter 是一个 container 小部件,它的行为类似于 QBoxLayout,增加了调整项目大小的可能性。这意味着您(通常)只需要一个分离器,无论您在同一方向添加多少个小部件。
你说的"splitters",其实就是拆分器handles(QSplitterHandle类),所以结构其实是这个:
QSplitter -------------------------------------+
| | | |
h H H |
a A A |
n N N |
d QWidget 1 D QWidget 2 D QWidget 3 |
l L L |
e E E |
| | | |
+---------------+---------------+--------------+
所以,就这么简单:
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
splitter = QSplitter(self)
splitter.addWidget(widget1)
splitter.addWidget(widget2)
splitter.addWidget(widget3)
我有 3 个 QWidget,我想连接它们。基本上它应该是这样的:
| |
| |
QWidget 1 | QWidget 2 | QWidget 3
| |
| |
QSplitter1 QSplitter2
到目前为止我尝试的是:
1) 将每个widget添加到对应的QSplitter
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
splitter1 = QSplitter(self)
splitter2 = QSplitter(self)
splitter1.addWidget(widget1)
splitter1.addWidget(widget2)
splitter2.addWidget(widget2)
splitter2.addWidget(widget3)
这里我得到一个可移动的分离器,应该是splitter2
2) 将完整的 splitter1 小部件作为第一个参数添加到 splitter2
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
splitter1 = QSplitter(self)
splitter2 = QSplitter(self)
splitter1.addWidget(widget1)
splitter1.addWidget(widget2)
splitter2.addWidget(splitter1)
splitter2.addWidget(widget3)
这里只有第一个分离器是活动的。
这样做的正确方法是什么?
QSplitter 是一个 container 小部件,它的行为类似于 QBoxLayout,增加了调整项目大小的可能性。这意味着您(通常)只需要一个分离器,无论您在同一方向添加多少个小部件。
你说的"splitters",其实就是拆分器handles(QSplitterHandle类),所以结构其实是这个:
QSplitter -------------------------------------+
| | | |
h H H |
a A A |
n N N |
d QWidget 1 D QWidget 2 D QWidget 3 |
l L L |
e E E |
| | | |
+---------------+---------------+--------------+
所以,就这么简单:
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
splitter = QSplitter(self)
splitter.addWidget(widget1)
splitter.addWidget(widget2)
splitter.addWidget(widget3)