QMainWindow是一个位用户提供主窗口程序的类,包含一个菜单栏(menu bar),多个工具栏(tool bars)、多个锚接部件(dock tool)、一个状态栏(status bar)以及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器;
在新建文件时需要选择QMainWindow;
菜单栏最多一个(QMenuBar);
工具栏可以有多个(QToolBar);
状态栏最多只能一个(QStatusBar);
铆接部件(浮动窗口)可以有多个(QDockWidget);
核心部件只能有一个(QCentralWidgrt);
#include "mainwindow.h"
#include<QMenuBar>
#include <QToolBar>
#include<QDebug>
#include <QPushButton>
#include<QStatusBar>
#include<QLabel>
#include<QDockWidget>
#include<QTextEdit>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//重置窗口
resize(1400,1000);
//创建菜单栏,菜单栏最多只能有一个
QMenuBar *bar = menuBar(); //源码已经把menuBar创建在对象树所以不需要加this
//将菜单栏放入窗口中
setMenuBar(bar);
//创建菜单
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
//创建菜单项
QAction *newAction = fileMenu->addAction("新建");
//添加分隔线
fileMenu->addSeparator();
QAction *openAction = fileMenu->addAction("打开");
//工具栏可以有多个
QToolBar *toolbar = new QToolBar(this);
//将工具栏放入窗口(默认放到左边)
addToolBar(Qt::LeftToolBarArea,toolbar);
//设置toolbar只允许左右停靠
toolbar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置浮动
toolbar->setFloatable(false);
//设置移动(总开关)
toolbar->setMovable(false);
//工具栏设置内容
toolbar->addAction(newAction);
//添加分割线
toolbar->addSeparator();
toolbar->addAction(openAction);
//工具栏添加控件
QPushButton *btn = new QPushButton("aa",this);
toolbar->addWidget(btn);
//状态栏最多只能有一个
QStatusBar *stbar = statusBar();
//设置到窗口中
setStatusBar(stbar);
//放一些标签控件
QLabel *label1 = new QLabel("提示的信息",this); //左侧提示
stbar->addWidget(label1);
QLabel *label2 = new QLabel("右侧提示的信息",this); //右侧提示
stbar->addPermanentWidget(label2);
//铆接部件(浮动窗口)可以有多个
QDockWidget *dockWidget = new QDockWidget("浮动",this);
addDockWidget(Qt::BottomDockWidgetArea,dockWidget); //放在底部
//设置后期停靠区域,只允许上下
dockWidget->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);
//设置中心部件只能有一个
QTextEdit *edit = new QTextEdit();
setCentralWidget(edit);
}
MainWindow::~MainWindow()
{
}
learned from:传智教育