1.Qt實現窗口停靠和懸浮使用類QDockWidget,它有兩個重要方法用來設置停靠特性以及停靠區域,this
dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//設置停靠窗口特性,可移動,可關閉
dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//設置可停靠區域爲主窗口左邊和右邊
2.將一個空間插入停靠窗體使用setWidget方法spa
dw1->setWidget(dte);
3.它的構造方法之一是:指定標題和父窗口code
QDockWidget *dw1 = new QDockWidget("停靠窗口1",this);//構建停靠窗口,指定父類
4.在主窗口加入懸浮窗使用addDockWidget,而且能夠指定停靠區域blog
addDockWidget(Qt::RightDockWidgetArea,dw1);
5.看建立停靠窗口完整代碼get
#include "dockwindow.h" #include<QTextEdit> #include <QDockWidget> DockWindow::DockWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle("停靠窗口"); QTextEdit *te = new QTextEdit("MainWindow",this); te->setAlignment(Qt::AlignCenter); setCentralWidget(te); //停靠窗口1 QDockWidget *dw1 = new QDockWidget("停靠窗口1",this);//構建停靠窗口,指定父類 dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//設置停靠窗口特性,可移動,可關閉 dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//設置可停靠區域爲主窗口左邊和右邊 QTextEdit *dte = new QTextEdit("DockWindow First"); dw1->setWidget(dte); addDockWidget(Qt::RightDockWidgetArea,dw1); //停靠窗口2 QDockWidget *dw2 = new QDockWidget("停靠窗口2",this);//構建停靠窗口,指定父類 dw2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);//設置停靠窗口特性,可浮動,可關閉 QTextEdit *dte2 = new QTextEdit("DockWindow Second"); dw2->setWidget(dte2); addDockWidget(Qt::RightDockWidgetArea,dw2); //停靠窗口3 QDockWidget *dw3 = new QDockWidget("停靠窗口3",this);//構建停靠窗口,指定父類 dw3->setFeatures(QDockWidget::AllDockWidgetFeatures);//設置停靠窗口特性,具備所有停靠窗口的特性 QTextEdit *dte3 = new QTextEdit("DockWindow Third"); dw3->setWidget(dte3); addDockWidget(Qt::RightDockWidgetArea,dw3); }
6.查看運行結果:it