分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口,如图。
// 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();
}