1.QT中QSplitter類可以用來靈活分割窗口,從而產生可用的布局,在以后進行界面布局很有用。
2.先看代碼,這個分割窗口按順序添加子窗口:
#include "mainwindow.h" #include <QApplication> #include <QSplitter>//分割窗口類頭文件 #include <QTextEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); //MainWindow w; //w.show(); QFont font("ZYSong18030",12);//指定顯示字體 a.setFont(font);//設置應用程序字體 //主分割窗口 QSplitter *spwin = new QSplitter(Qt::Horizontal,0);//指定水平分割 QTextEdit * te = new QTextEdit("Left Widget",spwin); te->setAlignment(Qt::AlignCenter); //右分割窗口 QSplitter *spright = new QSplitter(Qt::Vertical,spwin); spright->setOpaqueResize(false); QTextEdit *teup = new QTextEdit("Top Widget",spright); teup->setAlignment(Qt::AlignCenter); QTextEdit *tedown = new QTextEdit("Down Widget",spright); tedown->setAlignment(Qt::AlignCenter); spwin->setStretchFactor(1,1); spwin->setWindowTitle("分割窗口"); spwin->show(); return a.exec(); }
3.查看運行效果:可以看到窗口被划分為三部分,而且可以拖動改變三個子窗口大小


4.分析:
tedown->setAlignment(Qt::AlignCenter)設置對齊方式為居中對齊
spwin->setStretchFactor(1,1);讓spwin有部分可以伸展
spright->setOpaqueResize(false);設置分割線拖拽時是否實時顯示
QSplitter *spwin = new QSplitter(Qt::Horizontal,0);創建分割窗口,該窗口分為兩部分
