效果如下:
#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()
{
}