Qt 布局管理之分割窗口


使用QSplitter進行窗口分割,使用 Horizontal 創建水平的分割窗口textleft 創建一個子分割窗口splitterRight 放在進去默認就會到右側,這里繼續設置一下setOpaqueResize函數設置右側的拖拽不刷新只顯示一個粗線條,
在這個右側的子分割窗口中添加兩個textEidt分別處於上下兩個窗口 然后在主窗口中設置了右側的兩個子窗口為可伸縮控件。



#include<QFont>
#include<QSplitter>
#include <QApplication>
#include<QTextEdit>
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);
    //setOpaqueResize 設定分割窗口的分割條在拖曳時是否為實時更新顯示,
    //若設為true則實時更新顯示,若設為false則在拖曳時只顯示一條灰色的粗線條,
    //在拖曳到位並釋放鼠標后再顯示分割條。默認設置為true
    //splitterRight 中的up
    QTextEdit*textUp = new QTextEdit(QObject::tr("Top widget"),splitterRight);
    textUp->setAlignment(Qt::AlignCenter);
    //splitterRight 中的bottom
    QTextEdit *textBottom = new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);
    textBottom->setAlignment(Qt::AlignCenter);

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

    return a.exec();
}

有圖有真相


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM