分割視窗在應用程式中經常用到,它可以靈活分布視窗布局,經常用於類似檔案總管的視窗設計中,然後抱著這樣的想法簡單的實現了下
//main.cpp#include <QApplication>#include <QSplitter>#include <QTextEdit>#include <QTextCodec>int main(int argc, char *argv[]){ QTextCodec::setCodecForTr(QTextCodec::codecForLocale());QApplication app(argc, argv); //建立主分割視窗 設定方向為水平分割視窗 QSplitter *mainSplitter = new QSplitter(Qt::Horizontal, 0); //建立一個QTextEdit控制項 設定其父控制項為mainSplitter QTextEdit *leftEdit = new QTextEdit(QObject::tr("左視窗"), mainSplitter); //設定QTextEdit控制項中的文字的對齊置中顯示leftEdit->setAlignment(Qt::AlignCenter); //建立右分割視窗 設定其父控制項為mainSplitter 設定方向為垂直分割視窗 最後其分割成上下兩個視窗 QSplitter *rightSplitter = new QSplitter(Qt::Vertical, mainSplitter); //設定分割視窗的分割條在拖動時是否為即時更新 true為即時更新 false則在拖動時只顯示一條灰色的線條 //在拖動到位並彈起滑鼠後再顯示分隔條 rightSplitter->setOpaqueResize(false); //開始將其分割成上下兩個視窗 QTextEdit *upEdit = new QTextEdit(QObject::tr("上視窗"), rightSplitter); upEdit->setAlignment(Qt::AlignCenter); QTextEdit *bottomEdit = new QTextEdit(QObject::tr("下視窗"), rightSplitter); bottomEdit->setAlignment(Qt::AlignCenter); //設定可伸縮控制項 第一個參數指定控制項設定的控制項序號,該控制項序號按插入的先後次序依次從0開始編號//第二個參數大於0表示此控制項為伸縮控制項 此例中設定右部分割視窗為可伸縮控制項 mainSplitter->setStretchFactor(1, 1); mainSplitter->setWindowTitle(QObject::tr("分割視窗"));mainSplitter->show(); return app.exec();}