QSplitter類繼承於QFrame類,用於分割窗口的管理。
第一個參數是窗口分割方式,有下圖的兩個參數值可選(Qt::Horizontal為水平分割;Qt::Vertical為垂直分割)。
當然,也可以用以下方式聲明分割窗
再,利用函數setOrientation()函數設置分割方式。
要想獲取分割方式可利用Orientation()函數。
在該類中常用到的函數還有setOpaqueResize ( bool opaque = true ),用於設置分割窗的分割條在拖動時是否為實時更新顯示(默認為true/實時更新)。
setStretchFactor( int index, int stretch )用於設定可伸縮控件,它的第一個參數指定要設置控件的序號(按插入順序從0依次編號);第二個參數大於0時表示此控件為可伸縮控件。
mian.cpp
#include <QtGui/QApplication>
#include <QSplitter>
#include <QTextEdit>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//語言:
QTranslator translator;
translator.load("splitter_CN.qm");
a.installTranslator(&translator);
//主分割窗口:
QSplitter *splitterMain = new QSplitter(Qt::Horizontal,0);
QTextEdit *edtLeft = new QTextEdit(QObject::tr("Left Widget"),splitterMain);
edtLeft->setAlignment(Qt::AlignCenter);
//右部分割窗口:
QSplitter *splitterRight = new QSplitter(Qt::Vertical,splitterMain);
splitterRight->setOpaqueResize(false);
QTextEdit *edtUp = new QTextEdit(QObject::tr("Top Widget"),splitterRight);
edtUp->setAlignment(Qt::AlignCenter);
QTextEdit *edtBottom = new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);
edtBottom->setAlignment(Qt::AlignCenter);
splitterMain->setStretchFactor(1,1);
splitterMain->setWindowTitle(QObject::tr("Splitter"));
splitterMain->show();
return a.exec();
}
本例中還用到了QTextEdit類的setAlignment(Qt::Alignment a)方法,用於設定TextEdit對象中字體的對齊方式。
Qt::AlignLeft 左對齊
Qt::AlignRight 右對齊
Qt::AlignHCenter 居中
Qt::AlignTop 頂部對齊
Qt::AlignBottom 底部對齊

