mainwindow.cpp
#include "mainwindow.h"
#include <QMenuBar>
#include <QAction>
#include <QMenu>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->resize(600,400);
this->setWindowTitle("自己写一个mainwindow");
//创建菜单栏
QMenuBar *mBar = menuBar();
setMenuBar(mBar);
//添加菜单
QMenu *fileMenu = mBar->addMenu("文件");
QMenu *editMenu = mBar->addMenu("编辑");
//添加选项
QAction *newAction = fileMenu->addAction("新建");
QAction *openAction = fileMenu->addAction("打开");
//创建工具栏
QToolBar *tBar = new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,tBar);
//后期位置 只允许左右
tBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
//设置浮动 false
tBar->setFloatable(false);
//设置移动 false
tBar->setMovable(false);
//工具栏添加选项
tBar->addAction(openAction);
tBar->addAction(newAction);
QPushButton *btn = new QPushButton("切换",this);
tBar->addWidget(btn);
//设置状态栏
QStatusBar *sBar = statusBar();
setStatusBar(sBar);
QLabel *label = new QLabel("左侧状态",this);
QLabel *label2 = new QLabel("右侧状态",this);
sBar->addWidget(label);
sBar->addPermanentWidget(label2);
//铆接部件
QDockWidget *dockWidget = new QDockWidget("浮动部件",this);
addDockWidget(Qt::TopDockWidgetArea,dockWidget);
//后期只允许 上下
dockWidget->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);
//设置中心部件
QTextEdit *textEdit = new QTextEdit(this);
setCentralWidget(textEdit);
}
MainWindow::~MainWindow()
{
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};
#endif // MAINWINDOW_H
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
//写上
QApplication a(argc, argv);
//创建MainWindow类
MainWindow w;
//执行方法
w.show();
//阻塞,进入消息循环机制
return a.exec();
}
呈现效果如下: