我们新建一个项目,在文件继承上选择QMainWindow。
1、简介
QMainWindows是一个为用户提供窗口的程序类,包含菜单栏(menuBar)、多个工具栏(QToolBar)、多个铆接部件(浮动窗口)、一个状态栏及一个中心部件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-diaJdInO-1585318834737)(D:\java\myNote\image\qt237.png)]
2、组成
-
菜单栏
- 最多一个,在窗口的顶部。
- 有系统默认的。
-
工具栏
- 工具栏可以有多个。
- 可以放在上下左右4个位置。
-
状态栏
- 最多一个。
- 在窗口的底部。
- 有系统默认的。
-
铆接部件 浮动部件
- 可以有多个。
- 有上下左右4个位置。
- 围绕核心部件。
-
核心部件
- 最多一个
3、代码测试
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//重制窗口大小
resize(600,400);
//菜单栏的创建 menuBar是系统本身的
QMenuBar* bar = menuBar();
//将菜单栏加入窗口,若是空栏,什么都不显示
setMenuBar(bar);
//创建菜单
QMenu* fileMenu = bar->addMenu("文件");
QMenu* editMenu = bar->addMenu("编辑");
QMenu* buildMenu = bar->addMenu("构建");
//创建菜单项
fileMenu->addAction("新建文件或项目");
//添加分割线
fileMenu->addSeparator();
fileMenu->addAction("打开文件或项目");
//创建工具栏,可以有多个,默认不添加到窗口中
QToolBar* toolBar = new QToolBar(this);
//addToolBar(toolBar);
//添加停靠区域
addToolBar(Qt::LeftToolBarArea,toolBar);
//后期设置只允许左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
//设置禁止浮动
toolBar->setFloatable(false);
//设置禁止移动
toolBar->setMovable(false);
//设置内容
toolBar->addAction("欢迎");
toolBar->addAction("编辑");
toolBar->addSeparator();
toolBar->addAction("debug");
//工具栏添加控件
QPushButton* btn = new QPushButton("运行",this);
toolBar->addWidget(btn);
//状态栏 最多一个
//使用系统提供的状态栏
QStatusBar* statusBar1 = statusBar();
//设置到窗口中
setStatusBar(statusBar1);
//放标签控件
QLabel* label = new QLabel("字数",this);
statusBar1->addWidget(label);
QLabel* label2 = new QLabel("反馈",this);
statusBar1->addPermanentWidget(label2);
//铆接部件 可以有多个
QDockWidget* dock = new QDockWidget("运行情况",this);
//放在核心的下面
addDockWidget(Qt::BottomDockWidgetArea,dock);
//设置后期停靠只允许上下
dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
//设置中心部件 只能有一个
QTextEdit* edit = new QTextEdit();
setCentralWidget(edit);
}
MainWindow::~MainWindow()
{
}