【QT】QT从零入门教程(四):菜单栏、工具栏、状态栏
菜单栏、工具栏、任务栏是软件中常见的组件,本节将会讲解如何创建菜单栏并生成一级菜单、二级菜单,如何在工具栏中添加图标和控件,如何在任务栏中显示文本。
标题及图标
// 标题大小
setWindowTitle("图像处理自编软件 by 笔尖");// 软件图标
setWindowIcon(QIcon("../Image/icon/ImageProcessing.png"));// 界面大小
resize(QApplication::desktop()->width()*0.9, QApplication::desktop()->height()*0.9);
move(QApplication::desktop()->width()*0.05, QApplication::desktop()->height()*0.01);
菜单栏
// 第一个菜单
QMenu *menu1 = menuBar()->addMenu(tr("菜单栏1"));// 创建子菜单,第一个参数QIcon为添加图标,注意路径是否正确,第二个参数是子菜单的显示文本
QAction *act1 = new QAction(QIcon("../Image/act1.png"), tr("子菜单"), this);// 创建快捷方式:Ctrl+N,如果想自定义快捷键,可以设置为act->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
act1->setShortcuts(QKeySequence::New);// 子菜单触发时执行槽函数,不明白的可以参见前文:信号与槽
connect(act1, SIGNAL(triggered()), this, SLOT(pSlot1()));// 菜单栏添加子菜单
menu1->addAction(act1);// 第二个菜单:添加二级菜单
QMenu *menu2 = menuBar()->addMenu(tr("菜单栏2"));
QAction *act2 = new QAction(QIcon("../Image/act2.png"), tr("一级菜单"), this);QMenu *submenu = new QMenu();
QAction *subact = new QAction(QIcon("../Image/subact.png"), tr("二级菜单"), this);
submenu->addAction(subact);
connect(subact, SIGNAL(triggered()), this, SLOT(subSlot()));act2->setMenu(submenu); // 将二级菜单添加到一级菜单上
menu2->addAction(act2); // 将一级菜单添加到菜单栏上
运行结果
工具栏
// 窗口自带的工具栏
ui.mainToolBar->addAction(act1); //添加动作// 自定义工具栏
QToolBar *toolBar = new QToolBar();
toolBar->setMovable(false); // 设置工具栏不可移动,默认是可移动
addToolBar(toolBar); // 把工具栏添加到窗口QPushButton *button = new QPushButton(); // 这里用按钮控件进行测试
button->setText(tr("控件"));toolBar->addAction(subact); // 添加动作
toolBar->addWidget(button); // 添加控件
运行结果
任务栏
// 任务栏
act1->setStatusTip(tr("子菜单"));
act2->setStatusTip(tr("一级菜单"));
subact->setStatusTip(tr("二级菜单"));
运行结果
提示
如果出现汉字乱码问题,需要在程序中添加#pragma execution_character_set("utf-8")
!!!
头文件中找不到QPushButton的,说明缺少头文件。
博主用到的头文件有
#include <QtGui>
#include <QtWidgets>
#include <string>
#include <QMainWindow>
【QT】QT从零入门教程(四):菜单栏、工具栏、状态栏相关推荐
- LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库
LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库 前言: 阅读前,请确保你至少拥有以下条件: 已实现显示API(教程一已实现, 链接:LittleVGL (LVGL)入门教程一之 ...
- 【QT】QT从零入门教程(一):图像处理自编软件
自说自话 寒假有了闲暇时间,于是决定做一个实际点的项目.在此之前,一直想做一款软件,把自己所学过的知识融汇进去,以软件界面的形式呈现出来.此前接触过OpenCV,学C++也有一段时间了,正好想从零 ...
- Python+Opencv图像处理新手入门教程(四):视频内容的读取与导出
一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(三):阈值与二值化 1.Intro 今天这节我们主要看怎么利用opencv读取并处理视频中的内容. 2.VideoCapture ...
- (原创)LEON3入门教程(四):基于AMBA APB总线的七段数码管IP核设计
摘要:这一小节将介绍下如何设计用户自定义的APB IP,并将IP嵌入到SOPC中去.一个APB IP核的主要分为三个部分:逻辑单元.寄存器单元和接口单元.所设计的IP是一个简单的七段数码管显示IP,只 ...
- docker 镜像修改的配置文件自动还原_原创 | 全网最实在的docker入门教程四
作者:潘吉祥 上一篇我们学习了如何使用Dockerfile制作自己的镜像,不过这种方式更像纯粹的运维方式,作为开发者来说,未免有些小繁琐,一个不小心写错些命令就执行失败,我们还不知道错误在哪,这着实有 ...
- python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...
初衷 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方 ...
- SpringCloud 入门教程(四): 分布式环境下自动发现配置服务
前一章, 我们的Hello world应用服务,通过配置服务器Config Server获取到了我们配置的hello信息"hello world". 但自己的配置文件中必须配置co ...
- docker registry push 覆盖_原创 | 全网最实在的docker入门教程四
原创头条号:码农code之路,作者:潘吉祥,转载请标明出处 上一篇我们学习了如何使用Dockerfile制作自己的镜像,不过这种方式更像纯粹的运维方式,作为开发者来说,未免有些小繁琐,一个不小心写错些 ...
- Spring Boot入门教程(四十):微信支付集成-刷卡支付
分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 一:准备工作 使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多. 申请服务号(企业 ...
最新文章
- 从0开始搭建编程框架——思考
- [BZOJ2938]:[Poi2000]病毒
- Linux-Iptables-Memcached实现内网转发连接
- Linux下安装 Indy 到 Lazarus
- Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
- python复合条件判断_Python的条件判断和循环
- sublime text3占用CPU过高
- 表格 滚动条 (tbody部分滚动)
- 拓端tecdat|采用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析
- (转)别只盯着比特币!“野蛮生长”的ICO江湖:2年30倍只是寻常
- ps 毛发 边缘_【常用抠图小技巧】PS调整边缘扣毛发
- 什么是bug ,bug的生命周期都有什么?你想知道的全在这里了。
- 靶机渗透日记 noob
- java根据经纬度获取详细地址
- 使用redis实现附近的人
- 实时摄像头流传输(直播)
- 高德地图 poi 搜索
- 2021-06-29 连续非空子序列
- java生成word排版_java生成word(文字和图片)
- 如何自定义排序 aAbBcC 即Excel中的排序,AaBbCc