Qt 佈局管理之分割視窗
阿新 • • 發佈:2022-03-29
使用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(); }
有圖有真相