1. 程式人生 > >Qt 分割視窗Splitter類

Qt 分割視窗Splitter類

//main.cpp
#include "mymainwindow.h"
#include <QApplication>

#include <QSplitter>
#include <QTextEdit>
//#include <QTextCodec>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
   // MyMainWindow w;
   // w.show();

    QFont font("ZYSong18030",12);
    a.setFont(font); //指定顯示字型

    //主分割視窗
    //新建一個QSplitter類物件,作為主分割視窗,設定此分割視窗為水平分割視窗
    QSplitter *splitterMain=new QSplitter(Qt::Horizontal,0);

    QTextEdit *textLeft=new QTextEdit(QObject::tr("Left Widget"),splitterMain);
    textLeft->setAlignment(Qt::AlignCenter); //設定textEdit對齊方式

    //右分割視窗
    QSplitter *splitterRight=new QSplitter(Qt::Vertical,splitterMain);
    //setOpaqueResize方法用於設定分割視窗的分隔條在拖拽時是否實時更新顯示
    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);

    //setStretchFacto()方法用於設定伸縮控制元件,
    //第一個引數用於指定設定的控制元件序列號,序列號按照插入的先後次序從0開始編號
    //第二個引數為大於0的值,表示此控制元件為課伸縮控制元件
     splitterMain->setStretchFactor(1,1);//設定右部分為可伸縮控制元件
     splitterMain->setWindowTitle(QObject::tr("Splitter視窗"));
     splitterMain->show();

    return a.exec();
}