首页 > 代码库 > 分割窗口QSplitter类---布局管理(一)

分割窗口QSplitter类---布局管理(一)

从今天开始Mayuyu要学习QT了,Mayuyu是一个很爱美的姑娘,所以为了能给设计出美观的图形界面,Mayuyu一定

会努力的!

 

今天Mayuyu要讲的是布局管理中的分割窗口类QSplitter,分割窗口,顾名思义就是把窗口分割成一个一个小块。

比如要实现一个简单的窗口,如下图:

 

 

这个窗体有3部分,那么写出如下代码:

#include "widget.h"
#include <QApplication>
#include <QSplitter>
#include <QTextEdit>
#include <QTextCodec>


int main(int argc, char** argv)
{
    QApplication a(argc, argv);
    QFont font("ZYSong18030",12);
    a.setFont(font);
    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);
    splitterRight->setOpaqueResize(false);
    QTextEdit *textUp = new QTextEdit(QObject::tr("Top Widget"), splitterRight);
    textUp->setAlignment(Qt::AlignCenter);
    QTextEdit *textBottom = new QTextEdit(QObject::tr("Bottom Widget"), splitterRight);
    textBottom->setAlignment(Qt::AlignCenter);
    splitterMain->setStretchFactor(1,1);
    splitterMain->setWindowTitle(QObject::tr("Splitter"));
    splitterMain->show();
    return a.exec();
}


 

现在Mayuyu就来逐行解释:

 

第11和第12行是用来设置字体的。

第13行新建了一个QSplitter类对象,作为主分割窗口,设定为水平窗口。

第14行新建一个QTextEdit类对象,并将其插入主分割窗口中。

第15行设置TextEdit中文字对齐方式,常用的对齐方式主要有5种:

    (1)Qt::AlignLeft   左对齐

    (2)Qt::AlignRight  右对齐

    (3)Qt::AlignCenter 居中对齐(Qt::AlignHCenter为水平居中,Qt::AlignVCenter为垂直居中)

    (4)Qt::AlignUp     文字与顶端对齐

    (5)Qt::AlignBottom 文字与底部对齐

第16行新建一个QSplitter类对象,作为右分割窗口,设定此分割窗口为垂直分割窗口,并以主分割窗口为父窗口

,在QSplitter(args1,args2)中的第一个参数主要有两个值,分别是Qt::Horizontal或者Qt::Vertical,

分别表示水平分割和垂直分割。第二个参数表示在哪个父窗口内分割,没有父窗口则此参数为0。

 

第17行中的setOpaqueResize(false)方法用于设定分割窗口的分割条在拖拽时是否是实时更新显示,若为

true,表示更新显示,否则为false则在拖拽时只显示一条灰色的粗线条,当拖拽到位并释放鼠标后再显示分割

条,默认情况值为true。

 

第22行很重要,setStretchFactor(args1,args2)方法用于设定可伸缩性控件,第一个参数用于设定控件序

号,从0开始顺次编号,第二个参数为大于0的数,表示此控件为可伸缩性控件,也就是说当鼠标在拉动边框时,可

伸缩性框会跟着鼠标放大。

 

嗯,到了这里Mayuyu基本把QSplitter类的内容讲完,剩下的靠Mayuyu多理解了。