QT5學習:分割窗口類的使用


#include "mainwindow.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);//水平分割(即分成左、右塊),主窗口,因爲母窗體是0,所以實際上並無分割
    //QTextEdit *textLeft =new QTextEdit(QObject::tr("Left Widget"),splitterMain);//QObject::tr()目的是國際化
    QTextEdit *textLeft =new QTextEdit("Left Widget",splitterMain);
    textLeft->setAlignment(Qt::AlignCenter);//文字在窗口中心位置
    //右部分割窗口,如果需要再分割,則建立QSplitter子分割區域(然後建文本區QTextEdit);否則直接在主窗口建文本區QTextEdit
    QSplitter *splitterRight =new QSplitter(Qt::Vertical,splitterMain);//垂直分割(即分成上、下塊)

    //設置拖動時是否實時更新:
    //setOpaqueResize()用於設定分割窗的分隔條在拖動時是否爲實時更新顯示,若設置爲true則爲實時更新顯示
    //設置爲false則是在拖動時只顯示一條灰色的粗線條,在拖動到位並且彈起鼠標後再顯示分割條。一般默認設置爲true(實時更新)
    splitterRight->setOpaqueResize(false);
    //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);
    ////////////////////////////////右部分1
    QTextEdit *textRight1 =new QTextEdit("Right Widget1",splitterMain);
    textRight1->setAlignment(Qt::AlignCenter);//文字在窗口中心位置
    ////////////////////////////////右部分2
    QTextEdit *textRight2 =new QTextEdit("Right Widget2",splitterMain);
    textRight2->setAlignment(Qt::AlignCenter);//文字在窗口中心位置

    //setStretchFactor()用於設定可伸縮控件,它的第一個參數指定設置的控件序號,控件序號按插入的先後順序
    //從0起依次編號;第2個參數爲大於0的數表示此控件爲可伸縮控件此實例中設定右部分分割窗爲可伸縮控件,當整個
    //對話框的寬度發生變化時(當拉伸整個窗口時候),左部的文件編輯框寬度保持不變,右部的分割窗寬度隨着整個對話框大小改變進行調整
    splitterMain->setStretchFactor(1,1);
    splitterMain->setWindowTitle(QObject::tr("Splitter"));
    splitterMain->show();

    //MainWindow w;
    //w.show();

    return a.exec();
}
運行效果:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章