如何用另一个替换 Qsplitter 中的小部件?
How to replace a widget in Qsplitter with another?
我有一个分离器和两个小部件...我想用一个分离器替换第一个小部件,然后将第一个小部件和另一个小部件放入其中
具有相同的安排(在运行时)
PS: 我无法从拆分器中删除第一个小部件
您不需要新的拆分器来进行替换,因为 QSplitter 可以处理 2 个以上的小部件。假设我们在拆分器中有两个小部件:
QSplitter *splitter = new QSplitter(this);
setCentralWidget(splitter);
QTextEdit *widget0 = new QTextEdit;
QTextEdit *widget1 = new QTextEdit;
splitter->addWidget(widget0);
splitter->addWidget(widget1);
现在我们可以在这两个小部件之间放置第三个小部件:
QTextEdit *widget2 = new QTextEdit;
splitter->insertWidget(1, widget2);
现在我们有了三个小部件和它们之间的两个拆分器,顺序为 widget0、widget2、widget1。
更新:
如果第二个分离器的方向不同,则:
QSplitter *splitter2 = new QSplitter;
splitter2->setOrientation(Qt::Vertical);
QTextEdit *widget2 = new QTextEdit("2");
splitter2->addWidget(widget0);
splitter2->addWidget(widget2);
splitter->insertWidget(0, splitter2);
结果:
我有一个分离器和两个小部件...我想用一个分离器替换第一个小部件,然后将第一个小部件和另一个小部件放入其中 具有相同的安排(在运行时)
PS: 我无法从拆分器中删除第一个小部件
您不需要新的拆分器来进行替换,因为 QSplitter 可以处理 2 个以上的小部件。假设我们在拆分器中有两个小部件:
QSplitter *splitter = new QSplitter(this);
setCentralWidget(splitter);
QTextEdit *widget0 = new QTextEdit;
QTextEdit *widget1 = new QTextEdit;
splitter->addWidget(widget0);
splitter->addWidget(widget1);
现在我们可以在这两个小部件之间放置第三个小部件:
QTextEdit *widget2 = new QTextEdit;
splitter->insertWidget(1, widget2);
现在我们有了三个小部件和它们之间的两个拆分器,顺序为 widget0、widget2、widget1。
更新:
如果第二个分离器的方向不同,则:
QSplitter *splitter2 = new QSplitter;
splitter2->setOrientation(Qt::Vertical);
QTextEdit *widget2 = new QTextEdit("2");
splitter2->addWidget(widget0);
splitter2->addWidget(widget2);
splitter->insertWidget(0, splitter2);
结果: