分割窗口在應用程序中經常用到,它可以靈活分佈窗口布局,經常用於類似文件資源管理器的窗口,如圖。
// main.cpp
<pre name="code" class="cpp">#include "mainwindow.h"
#include <QApplication>
#include <QSplitter>
#include <QTextCodec>
#include <QTextEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//設置字體
QFont font("ZYSong18030",12);
a.setFont(font);
//QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
//主splitter,設置方向爲水平分割窗口,以下填充text和子splitter,第二個設定0代表是主窗口,無父窗口
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);
// 設定分割窗口的分割條在拖動時是否爲實時更新 true爲實時更新 false則在拖動時只顯示一條灰色的線條
//在拖動到位並彈起鼠標後再顯示分隔條
splitterRight->setOpaqueResize(false);
//開始填充右邊的splitter,放上兩個text
QTextEdit *textTop=new QTextEdit(QObject::tr("Right Top Widget"),splitterRight);
textTop->setAlignment(Qt::AlignCenter);
QTextEdit *textBottom=new QTextEdit(QObject::tr("Right Bottom Widget"),splitterRight);
textBottom->setAlignment(Qt::AlignCenter);
//設置主splitter
//設定可伸縮控件 第一個參數指定控件設置的控件序號,該控件序號按插入的先後次序依次從0開始編號
//第二個參數大於0表示此控件爲伸縮控件 此例中設置右部分割窗口爲可伸縮控件
splitterMain->setStretchFactor(1,1);
splitterMain->setWindowTitle(QObject::tr("Splitter"));
splitterMain->show();
return a.exec();
}