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 底部對齊