目錄
1.子窗口介紹:
2.代碼方式創建子窗口:
3.設置子窗口標題:
4.為子窗口添加控件:
5.設置子窗口停靠位置。
1.子窗口介紹:
在 Qt 中,可以創建和管理子窗口(子窗口體)以實現多窗口應用程序。
子窗口可以是對話框、獨立窗口或者 MDI(多文檔界面)子窗口。
通過QDockWidget類創建子窗口。
2.代碼方式創建子窗口:
- 創建子窗口對象:QDockWidget* dockWidget=new QDockWidget();
- 將子窗口添加到主窗口:this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);
????????
3.設置子窗口標題:
- 設置子窗口標題:dockWidget->setWindowTitle("這是子窗口的標題");
????????
4.為子窗口添加控件:
- 為子窗口添加控件,不能直接給這個窗口設置子控件。
- 首先要先創建一個單獨的QWidget對象,然后將控件設置到這個QWidget對象中。
- 再把這個QWidget對象設置到dockWidget中。
//為dockWidget賦予QWidget對象QWidget* container=new QWidget();dockWidget->setWidget(container);
- 由于一個dockWidget只能包含一個QWidget對象,所以要想新增控件,就還是要去QWidget對象中新增。
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);QDockWidget* dockWidget=new QDockWidget();this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);dockWidget->setWindowTitle("這是子窗口的標題");//為dockWidget賦予QWidget對象QWidget* container=new QWidget();dockWidget->setWidget(container);//創建兩個控件QLabel* label=new QLabel("這是一個label控件");QPushButton* pushButton=new QPushButton("這是一個按鈕");//創建一個布局管理利器,并且設置到QWidget對象中QVBoxLayout* layout=new QVBoxLayout();container->setLayout(layout);//將兩個控件添加到布局管理器中layout->addWidget(label);layout->addWidget(pushButton);}
5.設置子窗口停靠位置。
- 通過setAllowAreas(Qt::DockWidgetArea | Qt::DockWidgetArea)方法,設置允許停靠的位置。默認為Qt::LeftDockWidgetArea——左。
- 可以設置四個位置,默認位置為上:
- Qt::TopDockWidgetArea——上
- Qt::BottomDockWidgetArea——下
- Qt::LeftDockWidgetArea——左
- Qt::RightDockWidgetArea——右