Qt-可停靠窗口QDockwidget

Qt-可停靠窗口QDockwidget

mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include<QMainWindow>
#include<QToolBar>
#include<QMenuBar>
#include<QTextEdit>
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
        QTextEdit *textEdit;
        QMenu *viewMenu;
        QToolBar *viewToolBar;
        void createDockWidget();
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
};
 
#endif // MAINWINDOW_H
mainwindow.cpp:
#include "mainwindow.h"
#include<QDockWidget>
#include<QCalendarWidget>
 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
textEdit = new QTextEdit;
this->setCentralWidget(textEdit);
viewMenu = menuBar()->addMenu(tr("视图"));
viewToolBar = this->addToolBar(tr(" "));
createDockWidget();
this->setWindowTitle(tr("停靠窗口"));
 
}
 void MainWindow::createDockWidget()
 {
  QDockWidget *dock = new QDockWidget(this);
  dock->setWindowTitle(tr("日期"));
  dock->setAllowedAreas(Qt::AllDockWidgetAreas);
  QCalendarWidget *calendar = new QCalendarWidget;
  dock->setWidget(calendar);
  this->addDockWidget(Qt::RightDockWidgetArea,dock);
  viewMenu->addAction(dock->toggleViewAction());
  viewToolBar->addAction(dock->toggleViewAction());
 
 
 }
MainWindow::~MainWindow()
{
 
}