分割視窗在應用程式中經常用到,它可以靈活分布視窗布局,經常用于類似檔案資料總管的視窗設計中,然後抱着這樣的想法簡單的實作了下

[cpp] view plain copy print ?
- //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();
- }
在使用QSplitter的時候,對setStretchFactor沒怎麼了解,找了點資料看來下,順便記下來
//主分割視窗
QSplitter *splitterMain=new QSplitter(Qt::Horizontal,0);
QTextEdit *textLeft=new QtextEdit(QObject::tr("Left Widget"),splitterMain);
textLeft->setAlignment(Qt::AlignCenter);
QSplitter *splitterRight=new QSplitter(Qt::Vertical,splitterMain);
splitterRight->setOpaqueResize(false);
QTextEdit *textUp=new QtextEdit(QObject::tr("Top Widget"),splitterRight);
textUp->setAlignment(Qt::AlignCenter);
QTextEdit *textBottom=new QtextEdit(QObject::tr("Bottom Widget"),splitterRight);
textBottom->setAlignment(Qt:AlignCenter);
splitterMain->setStretchFactor(1,1);
splitterMain->setWindowTitle(QObject::tr("Splitter"));
SetStretchFactor()方法用于設定可伸縮控件,它的第一個參數指定設定的控件序号,控件序号按插入的先後次序進行編号;第二個參數為大于0的值表示此控件為可伸縮控件。此執行個體中設定右部分割窗為可伸縮控件,當整個對話框的寬度發生改變時,左部的檔案編輯框寬度保持不變。右部的分割窗寬度随整個對話框大小的改變進行調整。