当前位置: 首页 > news >正文

创建菜单栏、菜单、菜单项

1、QMainWindow窗口

1.1、创建菜单栏

this 代表的是 当前窗口(主窗口),也就是  当前窗口中添加/设置 菜单栏

this->resize(800,600);
//创建 菜单栏
QMenuBar *menuBar = new QMenuBar(this);
//将菜单栏 添加到主窗口的特殊位置
this->setMenuBar(menuBar);

1.2、创建菜单

让创建的菜单属于 this(当前主窗口),方便当主窗口释放的时候会带着释放整个 子控件,所以以后写的时候,直接让所有的子控件都属于 this(主窗口),方便释放

//创建菜单
QMenu *file = new QMenu("文件", this);
QMenu *edit = new QMenu("编辑", this);
//菜单栏中添加菜单
menuBar->addMenu(file);
menuBar->addMenu(edit);

1.3、创建菜单项

QList<QAction *>() 是匿名对象,QList<QAction *>()<<New<<Open 表示将 New 和 Open 多个菜单项 << (输入到)匿名对象 QList<QAction *>() 中 

//创建菜单项
QAction *New = new QAction("新建", this);
QAction *Open = new QAction("打开", this);
//菜单中添加菜单项
file->addAction(New);
//添加一个分隔符
file->addSeparator();
file->addAction(Open);
//一个菜单添加多个菜单项
edit->addActions(QList<QAction *>()<<New<<Open);

1.4、菜单项动起来

菜单项动起来,槽(消息接收者和槽函数)使用匿名对象完成,New 是 信号

//菜单项动起来
connect(New, &QAction::triggered,[&](){qDebug()<<"新建文件了"<<endl;
}  );
connect(Open, &QAction::triggered,[&](){qDebug()<<"打开文件了"<<endl;
}  );

1.5、设置菜单项的快捷方式

setShortcut 是设置快捷键,使用 setShortcut 给菜单项设置快捷方式
//设置菜单项的快捷方式
New->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_N));
Open->setShortcut(tr("Ctrl+o"));

1.6 、添加分隔符

在 两个菜单项 New 和 Open 之间添加,产生分隔符

//菜单中添加菜单项
file->addAction(New);
//添加一个分隔符
file->addSeparator();
file->addAction(Open);

1.7、设置工具栏

工具栏 中 设置 菜单项

//创建工具栏QToolBar
QToolBar *toolBar = new QToolBar();
//将工具栏 放入主窗口的特定位置
this->addToolBar(toolBar);
//将菜单项 放入工具栏中
toolBar->addAction(New);
toolBar->addAction(Open);
//工具栏默认可以浮动、可以停靠四周
//不允许工具栏浮动false
toolBar->setFloatable(false);
//只允许工具栏停靠左右
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

1.8、创建状态栏

//创建状态栏
QStatusBar *statusBar = new QStatusBar(this);
//将状态栏 添加到 主窗口中
this->setStatusBar(statusBar);
//在状态栏上 添加左侧信息
QLabel *label1= new QLabel("左侧提示信息", this);
statusBar->addWidget(label1);
//在状态栏上 添加右侧信息
QLabel *label2= new QLabel("右侧提示信息", this);
statusBar->addPermanentWidget(label2);

1.9、创建中心部件

//创建中心部件
//将文本框作为中心部件
QTextEdit *textEdit = new QTextEdit("这是中心部件", this);
this->setCentralWidget(textEdit);

1.10、创建铆接部件

//创建铆接部件
QDockWidget *dock = new QDockWidget("我是铆接部件",this);
//将铆接部件 添加到主窗口中
this->addDockWidget(Qt::AllDockWidgetAreas, dock);

2、资源文件

http://www.lryc.cn/news/59506.html

相关文章:

  • 专访丨AWS量子网络中心科学家Antía Lamas谈量子计算
  • [ 云计算 | Azure ] Chapter 04 | 核心体系结构之数据中心、区域与区域对、可用区和地理区域
  • 升级长江存储最新闪存,忆恒创源发布新一代企业级NVMe SSD
  • Xcode14:”Failed to prepare the device for development“解决
  • 程序员的“灵魂笔记本“:五款高效笔记软件推荐
  • Linux基础命令-scp远程复制文件
  • 【python学习】基础篇-列表元素排序操作 sort()、min()、max()函数
  • 机器视觉检测系统的基本流程你知道吗
  • 【vue】Vue 开发技巧:
  • Kubebuilder Hello World
  • SpringSecurity之权限方案——用户认证
  • 本地电脑轻松部署GPT4(无需账号)!
  • 每天一道大厂SQL题【Day21】华泰证券真题实战(三)
  • 腾讯云8核16G18M轻量服务器CPU带宽流量性能测评
  • 算法之归并排序
  • Mysql日志系统-mysql serve层
  • 阿里云蔡英华:云智一体,让产业全面迈向智能
  • 打怪升级之FPGA组成原理(LE部分)
  • c++的多态
  • 【数据结构与算法】堆的实现(附源码)
  • win10彻底永久关闭自动更新【亲测有效】
  • 【Unity UPR】造个获取深度法线纹理的轮子
  • 用 Python解析HTML页面
  • python logging 详解
  • ( “树” 之 DFS) 687. 最长同值路径 ——【Leetcode每日一题】
  • Elasticsearch解决不能修改索引、字段问题解决方案
  • 面试官在线改简历 | 只有6秒!程序员简历这样写才能抓住科技公司大佬的眼球
  • IM即时通讯-7-如何设计通知提醒
  • 赛狐ERP | 亚马逊选品方法与策略详解:如何挑选最优质的产品?
  • 【GCU体验】基于PyTorch + GCU跑通ResNet50模型并测试GCU性能