0

我有 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 Widget 作为第一个参数添加到 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)

这里只有第一个分离器处于活动状态。

这样做的正确方法是什么?

4

1 回答 1

1

QSplitter 是一个容器小部件,它的行为类似于 QBoxLayout,增加了调整项目大小的可能性。这意味着您(通常)只需要一个拆分器,无论您在同一方向添加多少小部件。

您所说的“拆分器”实际上是拆分器句柄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)
于 2020-03-05T18:44:48.130 回答