1. QSplitter 分割区域, 可以分割区域中可以随意添加自己的布局
2.
#include "dialog.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); //Dialog w; //w.show(); QTextEdit *editor1 = new QTextEdit("test1"); QTextEdit *editor2 = new QTextEdit("test2"); QTextEdit *editor3 = new QTextEdit("test3"); QSplitter *splitter = new QSplitter(Qt::Vertical); splitter->addWidget(editor1); splitter->addWidget(editor2); QSplitter mainsp(Qt::Horizontal); mainsp.addWidget(editor3); mainsp.addWidget(splitter); mainsp.show(); return a.exec(); }
3. 添加滚动条
#include "dialog.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); //Dialog w; //w.show(); QTextEdit *editor1 = new QTextEdit("test1"); QTextEdit *editor2 = new QTextEdit("test2"); QTextEdit *editor3 = new QTextEdit("test3"); QSplitter *splitter = new QSplitter(Qt::Vertical); splitter->addWidget(editor1); splitter->addWidget(editor2); QSplitter *mainsp = new QSplitter(Qt::Horizontal); mainsp->addWidget(editor3); mainsp->addWidget(splitter); QScrollArea scrollArea; scrollArea.setWidget(mainsp); scrollArea.viewport()->setBackgroundRole(QPalette::Dark); scrollArea.viewport()->setAutoFillBackground(true); scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); //控件大小 小于 视窗大小时,默认不会显示滚动条 scrollArea.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); //强制显示滚动条。 scrollArea.show(); return a.exec(); }