Qt之布局管理——分割窗口
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 底部对齐
作者:韩兆新
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。