QMainWindwo组成
菜单栏
// 头文件
#include <QMenu>
// 创建菜单栏,有且只有一个,菜单列表,选项
QMenuBar *menuBar = new QMenuBar(this);
// 如果不设置菜单栏和主窗口的绑定,它只是把控件放到窗口上面
this->setMenuBar(menuBar);
// ALT + F 触发文件按钮
QMenu *fileMenu = menuBar->addMenu("文件(&F)");
menuBar->addMenu("编辑");
fileMenu->addAction("打开");
// 分割线
fileMenu->addSeparator();
QAction *closeAction = fileMenu->addAction("关闭");
// 设置快捷键触发
closeAction->setShortcut(QKeySequence(tr("Ctrl+4")));
// 关闭的触发事件
connect(closeAction, &QAction::triggered, this, &QWidget::close);
工具栏
// 头文件
#include <QToolBar>
// 创建工具栏
QToolBar *toolBar = new QToolBar(this);
/*
ConstantValue
Qt::LeftToolBarArea0x1
Qt::RightToolBarArea0x2
Qt::TopToolBarArea0x4
Qt::BottomToolBarArea0x8
Qt::AllToolBarAreasToolBarArea_Mask
Qt::NoToolBarArea0
*/
this->addToolBar(Qt::BottomToolBarArea, toolBar);
toolBar->addAction("文件1");
toolBar->addAction("编辑1");
toolBar->addAction(QIcon(":/new.png"), "新建");
QAction *actionOpen = toolBar->addAction(QIcon(":/open.png"), "打开");
// 这里添加button控件 需要添加头文件 #include <QPushButton>
QPushButton *btn = new QPushButton("按钮", this);
toolBar->addWidget(btn);
connect(actionOpen, &QAction::triggered, this, &QWidget::close);
可以进行拖拽,进行停靠在上面或者两侧。
浮动窗口
// 头文件
#include <QDockWidget>
// 创建浮动窗口
QDockWidget *dock = new QDockWidget(this);
// 绑定 指定位置信息
this->addDockWidget(Qt::TopDockWidgetArea, dock);
可以进行拖拽出来。
中心部件
// 创建中心部件
QTextEdit *text = new QTextEdit(this); // 这里以 QTextEdit 举例,需要添加头文件 #include <QTextEdit>
this->setCentralWidget(text);
创建状态栏
// 头文件
#include <QStatusBar>
// 创建状态栏
QStatusBar *statuBar = new QStatusBar(this);
this->setStatusBar(statuBar);
QLabel *leftInfo = new QLabel("左侧提示信息", this); // 这里以状label 举例,需要天及头文件 #include <QLabel>
statuBar->addWidget(leftInfo);
QLabel *rightInfo = new QLabel("右侧提示信息", this);
statuBar->addPermanentWidget(rightInfo);
QMainWindow代码合集
#include "mainwindow.h"
#include<QMenuBar>
#include <QWidget>
#include <QMenu>
#include <QToolBar>
#include <QPushButton>
#include <QDockWidget>
#include <QTextEdit>
#include <QStatusBar>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建菜单栏,有且只有一个,菜单列表,选项
QMenuBar *menuBar = new QMenuBar(this);
// 如果不设置菜单栏和主窗口的绑定,它只是把控件放到窗口上面
this->setMenuBar(menuBar);
// ALT + F 触发文件按钮
QMenu *fileMenu = menuBar->addMenu("文件(&F)");
menuBar->addMenu("编辑");
fileMenu->addAction("打开");
// 分割线
fileMenu->addSeparator();
QAction *closeAction = fileMenu->addAction("关闭");
// 设置快捷键触发
closeAction->setShortcut(QKeySequence(tr("Ctrl+4")));
// 关闭的触发事件
connect(closeAction, &QAction::triggered, this, &QWidget::close);
// 创建工具栏
QToolBar *toolBar = new QToolBar(this);
/*
ConstantValue
Qt::LeftToolBarArea0x1
Qt::RightToolBarArea0x2
Qt::TopToolBarArea0x4
Qt::BottomToolBarArea0x8
Qt::AllToolBarAreasToolBarArea_Mask
Qt::NoToolBarArea0
*/
this->addToolBar(Qt::BottomToolBarArea, toolBar);
toolBar->addAction("文件1");
toolBar->addAction("编辑1");
toolBar->addAction(QIcon(":/new.png"), "新建");
QAction *actionOpen = toolBar->addAction(QIcon(":/open.png"), "打开");
QPushButton *btn = new QPushButton("按钮", this);
toolBar->addWidget(btn);
connect(actionOpen, &QAction::triggered, this, &QWidget::close);
// 创建浮动窗口
QDockWidget *dock = new QDockWidget(this);
// 绑定 指定位置信息
this->addDockWidget(Qt::TopDockWidgetArea, dock);
// 创建中心部件
QTextEdit *text = new QTextEdit(this);
this->setCentralWidget(text);
// 创建状态栏
QStatusBar *statuBar = new QStatusBar(this);
this->setStatusBar(statuBar);
QLabel *leftInfo = new QLabel("左侧提示信息", this);
statuBar->addWidget(leftInfo);
QLabel *rightInfo = new QLabel("右侧提示信息", this);
statuBar->addPermanentWidget(rightInfo);
}
MainWindow::~MainWindow()
{
}