做菜单
- 前言
- 一、创建文件
- 二、菜单栏 QMenuBar
- 2.1 示例代码
- 2.2 运行结果
- 三、工具栏 QToolBar
- 3.1 运行代码
- 3.2 结果分析
- 四、状态栏 QStatusBar
- 4.1 运行代码
- 4.2 运行结果
- 五、文本编辑框 QTextEdit
- 5.1 运行代码
- 5.2 运行结果
- 六、浮动窗口 addDockWidget
- 6.1 运行代码
- 6.2 运行结果
- 总结
前言
一、创建文件
这里和之前一样。
主要是后面选择,带菜单栏的窗口(PC端常用)QMainWindow
最终
主要是菜单栏、工具栏、状态栏、核心控件(文本编辑框)、浮动窗口
看的QMainWindow的public-functions栏可以看共有函数,是他提供的api。
二、菜单栏 QMenuBar
需要包含头文件
#include <QMenuBar>
#include <QMenu>
创建菜单
2.1 示例代码
过程全在注释里了,接下来是mymainwindow.cpp的内容
#include "mymainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>
myMainWindow::myMainWindow(QWidget *parent)
: QMainWindow(parent)
{
QMenuBar *mBar = menuBar(); // 添加菜单栏
QMenu *pFile = mBar->addMenu("文件"); // 菜单内容
QAction *pNew = pFile->addAction("新建"); // 菜单项
connect(pNew,&QAction::triggered,
[=]()
{
qDebug()<<"新建被按下";
}
);
pFile->addSeparator(); // 增加分割线
QAction *pOpen= pFile->addAction("打开");
}
myMainWindow::~myMainWindow()
{
}
2.2 运行结果
运行结果不展示了,放分析助于理解吧。
三、工具栏 QToolBar
在上一个的基础上增加,这一部分。
3.1 运行代码
3.2 结果分析
四、状态栏 QStatusBar
4.1 运行代码
4.2 运行结果
五、文本编辑框 QTextEdit
5.1 运行代码
5.2 运行结果
六、浮动窗口 addDockWidget
像这种有两种方法的,需要依赖帮助文档。
但是摁F1,却显示不出内容
需要将参数补齐,再进行跳转。
有点看不懂洋文。。。。。
QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
- 第一个参数通常是指定停靠部件的位置,是一个枚举值,例如在 Qt 中,有
Qt::LeftDockWidgetArea、Qt::RightDockWidgetArea、Qt::TopDockWidgetArea、Qt::BottomDockWidgetArea
等,用来确定该停靠部件最初应该停靠在主窗口的哪个区域。 - 第二个参数是要添加的实际停靠部件的对象指针。
6.1 运行代码
6.2 运行结果
总结
本篇总结放完整代码
#include "mymainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QTextEdit>
#include <QDockWidget>
myMainWindow::myMainWindow(QWidget *parent)
: QMainWindow(parent)
{
QMenuBar *mBar = menuBar(); // 添加菜单栏
QMenu *pFile = mBar->addMenu("文件"); // 菜单内容
QAction *pNew = pFile->addAction("新建"); // 菜单项
connect(pNew,&QAction::triggered,
[=]()
{
qDebug()<<"新建被按下";
}
);
pFile->addSeparator(); // 增加分割线
QAction *pOpen= pFile->addAction("打开");
// 工具栏项,菜单的快捷方式
QToolBar *toolBar = addToolBar("toolBar");
toolBar->addAction(pNew); // 工具栏增加快捷方式
QPushButton *button1 = new QPushButton(this);
button1->setText("OHO"); // 之后可以用图片图标,目前只有颜表情代替
// 添加小控件
toolBar->addWidget(button1);
connect(button1,&QPushButton::clicked,
[=]()
{
button1->setText("123");
}
);
// 状态栏
QStatusBar *sBar = statusBar();
QLabel *label = new QLabel(this);
label->setText("Normal");
sBar->addWidget(label);
sBar->addWidget(new QLabel("status 2",this)); // addWidget从左往右添加
sBar->addPermanentWidget(new QLabel("status 3",this)); // 从左往右添加
// 核心控件--文本编辑框
QTextEdit *textEdit = new QTextEdit(this);
setCentralWidget(textEdit);
// 浮动窗口
QDockWidget *dock = new QDockWidget(this);
addDockWidget(Qt::LeftDockWidgetArea,dock); // 初始状态,后面是可以继续浮动的
QTextEdit *textEdit_1 = new QTextEdit(this); // 为浮动窗口增加一下东西
dock->setWidget(textEdit_1);
}
myMainWindow::~myMainWindow()
{
}