使用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();
}
有圖有真相