我有一个 QGridLayout
与 QSplitter
就可以了。在那QSplitter
我有两个带有拆分器的元素,可让我将拆分器从左向右移动。好的,那里没问题。但后来我想添加另一个拆分器,但它会上下移动。 (我会用图片来解释。)
所以它主要有 2 个分路器,一个从左到右移动,另一个从上到下移动。
我希望你明白。
QGridLayout *layout = new QGridLayout(this);
QSplitter *splitter = new QSplitter();
text1 = new QPlainTextEdit();
text2 = new QPlainTextEdit();
splitter->addWidget(text1);
splitter->addWidget(text2);
text1->resize(800, this->height());
layout->addWidget(splitter, 1, 0);
browser = new QTextBrowser();
browser->resize(1, 1);
layout->addWidget(browser, 2, 0);
setLayout(layout);
在这里我只添加了 1 个拆分器,因为我不知道如何做第二个。
最佳答案
您应该能够轻松地根据您的需要进行调整。这个想法是为前两个元素创建一个容器,然后通过拆分器将容器与第三个元素连接起来。
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget wnd;
QTextEdit *editor1 = new QTextEdit;
QTextEdit *editor2 = new QTextEdit;
QTextEdit *editor3 = new QTextEdit;
QSplitter *split1 = new QSplitter;
QSplitter *split2 = new QSplitter;
QVBoxLayout *layout = new QVBoxLayout;
QWidget *container = new QWidget;
QVBoxLayout *container_layout = new QVBoxLayout;
split1->addWidget(editor1);
split1->addWidget(editor2);
container_layout->addWidget(split1);
container->setLayout(container_layout);
split2->setOrientation(Qt::Vertical);
split2->addWidget(container);
split2->addWidget(editor3);
layout->addWidget(split2);
wnd.setLayout(layout);
wnd.show();
return app.exec();
}
关于Qt - 同时制作水平和垂直的拆分器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8685005/