QSplitter是個版面分割元件,可以將視窗版面進行水平切割或垂直切割,一個最簡單的範例如下所示:
#include <QApplication> #include <QSplitter> #include <QTextEdit>
int main(int argc, char *argv[]) { QApplication app(argc, argv); QSplitter *splitter = new QSplitter(Qt::Horizontal); splitter->setWindowTitle("QSplitter"); splitter->addWidget(new QTextEdit); splitter->addWidget(new QTextEdit); splitter->addWidget(new QTextEdit);
splitter->show(); return app.exec(); }
直接來看執行畫面:

利用QSplitter的嵌套,可以組合出更複雜的畫面切割方式,例如:
#include <QApplication> #include <QSplitter> #include <QTextEdit> #include <QListWidget> #include <QLabel>
int main(int argc, char *argv[]) { QApplication app(argc, argv);
QListWidget *listWidget = new QListWidget; listWidget->insertItem(0, new QListWidgetItem( QIcon("caterpillar_head.jpg"), "caterpillar")); listWidget->insertItem(1, new QListWidgetItem( QIcon("momor_head.jpg"), "momor")); listWidget->insertItem(2, new QListWidgetItem( QIcon("bush_head.jpg"), "bush")); listWidget->insertItem(3, new QListWidgetItem( QIcon("bee_head.jpg"), "bee"));
QSplitter *splitter1 = new QSplitter(Qt::Horizontal); splitter1->setWindowTitle("QSplitter"); QSplitter *splitter2 = new QSplitter(Qt::Vertical); splitter1->addWidget(listWidget); splitter1->addWidget(splitter2); splitter2->addWidget( new QLabel("<h1><font color=blue>Hello!World!</font></h1>")); splitter2->addWidget(new QTextEdit);
splitter1->show(); return app.exec(); }
這個程式先將畫面進行水平切割,然後在右邊的切割中再進行垂直切割,所完成的畫面切割如下所示:

|
|