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 底部对齐