QDockWidget 浮动窗口

效果如下:
#include "mainwindow.h"
#include <QTextEdit>
#include <QDockWidget>
#include <QMenu>
#include <QAction>
#include <QMenuBar>
#include <QDebug>
#include <QFileDialog>
#include <QImage>
#include <QLabel>
#include <QPixmap>
#include <QStatusBar>
#include <QToolBar>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
 
 
    resize(1000, 800);
    QMenu *fileMenu = new QMenu("文件",this);
    QAction *openAct = new QAction("打开", this);
    fileMenu->addAction(openAct);
    connect(openAct, SIGNAL(triggered(bool)), this, SLOT(slotOpen()));
    menuBar()->addMenu(fileMenu);
 
 
    //状态栏
    QLabel *msgLabel = new QLabel;
    msgLabel->setStyleSheet(" QLabel{ color: red }");
    msgLabel->setText("Ready :");
    statusBar()->addPermanentWidget(msgLabel); //addWidget
 
 
    //工具栏  添加资源文件加入图片  响应再用connect连接槽
    QAction* openFile = new QAction(QIcon(":/ui/image/file.png"), tr("aaaa"), this);
    openFile->setToolTip("abcdeoghicd");
    QToolBar *toolBar = this->addToolBar("文件");
    toolBar->addAction(openFile);
 
 
    setWindowTitle("DockWidget Demo");
    QTextEdit *mainEdit = new QTextEdit(this);
    mainEdit->setAlignment(Qt::AlignCenter);
    mainEdit->setText("Main");
    setCentralWidget(mainEdit);
 
 
    QDockWidget * dock1 = new QDockWidget("DockWindow1",this);
 
 
    dock1->setFeatures(QDockWidget::DockWidgetMovable);
    dock1->setAllowedAreas( Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
 
 
    QTextEdit *edit1 = new QTextEdit();
    edit1->setText("window1, the dock widget can be moved ");
    dock1->setWidget(edit1);
 
 
 
 
    QDockWidget * dock2 = new QDockWidget("DockWindow2",this);
 
 
    dock2->setFeatures(QDockWidget::DockWidgetMovable| QDockWidget::DockWidgetClosable);
    dock2->setAllowedAreas( Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
 
 
    QTextEdit *edit2 = new QTextEdit();
 
 
    edit2->setText("window2, the dock widget can be moved ");
    dock2->setWidget(edit2);
 
 
    QDockWidget * dock3 = new QDockWidget("DockWindow3",this);
 
 
    dock3->setFeatures(QDockWidget::DockWidgetMovable| QDockWidget::DockWidgetClosable);
    dock3->setAllowedAreas( Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
    QTextEdit *edit3 = new QTextEdit();
    edit3->setText("window3, the dock widget can be moved ");
    dock3->setWidget(edit3);
 
 
    this->addDockWidget( Qt::BottomDockWidgetArea, dock1);
    this->addDockWidget( Qt::BottomDockWidgetArea, dock2);
    this->addDockWidget( Qt::BottomDockWidgetArea, dock3);
 
 
    tabifyDockWidget(dock1,dock2); //页签
    tabifyDockWidget(dock2, dock3);
 
 
    dock1->raise();//定位第一个标签
 
 
    QDockWidget * dock4 = new QDockWidget("DockWindow4",this);
 
 
    dock4->setFeatures(QDockWidget::DockWidgetMovable| QDockWidget::DockWidgetClosable);
    dock4->setAllowedAreas( Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
    QTextEdit *edit4 = new QTextEdit();
    edit4->setText("window4, the dock widget is sha bi");
    dock4->setWidget(edit4);
 
 
    QDockWidget * dock5 = new QDockWidget("DockWindow4",this);
 
 
    dock5->setFeatures(QDockWidget::DockWidgetMovable| QDockWidget::DockWidgetClosable);
    dock5->setAllowedAreas( Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
    QTextEdit *edit5 = new QTextEdit();
    edit5->setText("window5, the dock widget is great");
    dock5->setWidget(edit5);
 
 
    this->addDockWidget(Qt::RightDockWidgetArea, dock4);
 
 
    this->addDockWidget(Qt::RightDockWidgetArea, dock5);
}
 
 
void MainWindow::slotOpen()
{
    QString pathName;
    pathName = QFileDialog::getOpenFileName(this, "打开", "", "history(*.txt)");
    qDebug()<<"打开文件----------------------"<<pathName;
}
 
 
MainWindow::~MainWindow()
{
 
 
}
 

猜你喜欢

转载自blog.csdn.net/qq_16628589/article/details/79001305