1.Qt實現窗口停靠和懸浮使用類QDockWidget,它有兩個重要方法用來設置停靠特性以及停靠區域,
1 dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//設置停靠窗口特性,可移動,可關閉
2 dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//設置可停靠區域為主窗口左邊和右邊
2.將一個空間插入停靠窗體使用setWidget方法
dw1->setWidget(dte);
3.它的構造方法之一是:指定標題和父窗口
QDockWidget *dw1 = new QDockWidget("停靠窗口1",this);//構建停靠窗口,指定父類
4.在主窗口加入懸浮窗使用addDockWidget,並且可以指定停靠區域
addDockWidget(Qt::RightDockWidgetArea,dw1);
5.看創建停靠窗口完整代碼
1 #include "dockwindow.h"
2 #include<QTextEdit>
3 #include <QDockWidget>
4
5 DockWindow::DockWindow(QWidget *parent) 6 : QMainWindow(parent) 7 { 8
9 setWindowTitle("停靠窗口"); 10
11 QTextEdit *te = new QTextEdit("MainWindow",this); 12 te->setAlignment(Qt::AlignCenter); 13 setCentralWidget(te); 14
15 //停靠窗口1
16 QDockWidget *dw1 = new QDockWidget("停靠窗口1",this);//構建停靠窗口,指定父類
17
18 dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//設置停靠窗口特性,可移動,可關閉
19
20 dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//設置可停靠區域為主窗口左邊和右邊
21
22 QTextEdit *dte = new QTextEdit("DockWindow First"); 23 dw1->setWidget(dte); 24 addDockWidget(Qt::RightDockWidgetArea,dw1); 25
26 //停靠窗口2
27 QDockWidget *dw2 = new QDockWidget("停靠窗口2",this);//構建停靠窗口,指定父類
28
29 dw2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);//設置停靠窗口特性,可浮動,可關閉
30
31 QTextEdit *dte2 = new QTextEdit("DockWindow Second"); 32 dw2->setWidget(dte2); 33 addDockWidget(Qt::RightDockWidgetArea,dw2); 34
35 //停靠窗口3
36 QDockWidget *dw3 = new QDockWidget("停靠窗口3",this);//構建停靠窗口,指定父類
37
38 dw3->setFeatures(QDockWidget::AllDockWidgetFeatures);//設置停靠窗口特性,具有全部停靠窗口的特性
39
40 QTextEdit *dte3 = new QTextEdit("DockWindow Third"); 41 dw3->setWidget(dte3); 42 addDockWidget(Qt::RightDockWidgetArea,dw3); 43
44
45 }