Qt学习之路(13): 菜单和工具条(续)

Qt C++ 改变QMenu的长宽 //设置菜单项的属性 QPoint p = this->rect().topRight(); p.setX(p.x() - 225); p.setY(p.y() + 27); // 添加菜单项 QMenu *radarMenu = this->addMenu("雷达控制"); radarMenu->exec(this->mapToGlob 阅读详情
前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦!
 
首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。
 
为了添加图标,我们首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File...,然后选择resource file。
 
 
然后点击next,选择好位置,Finish即可。为了使用方便,我就把这个文件建在根目录下,建议应该在仔细规划好文件之后,建在专门的rsources文件夹下。完成之后,生成的是一个.qrc文件,qrc其实是Qt Recource Collection的缩写。它只是一个普通的XML文件,可以用记事本等打开。不过,这里我们不去深究它的结构,完全利用QtCreator操作这个文件,
 
 
点击Add按钮,首先选择Add prefix,然后把生成的/new/prefix改成/。这是prefix就是以后使用图标时需要提供的前缀,以/开头。添加过prefix之后,然后在工程文件中添加一个图标,再选择Add file,选择那个图标。这样完成之后保存qrc文件即可。
 
说明一下,QToolBar的图标大小默认是32*32,菜单默认是16*16。如果提供的图标小于要求的尺寸,则不做操作,Qt不会为你放大图片;反之,如果提供的图标文件大于相应的尺寸要求,比如是64*64,Qt会自动缩小尺寸。
 
 
图片的路径怎么看呢?可以看出,Qt的资源文件视图使用树状结构,根是/,叶子节点就是图片位置,连接在一起就是路径。比如这张图片的路径就是/Open.png。
 
注意,为了简单起见,我们没有把图标放在专门的文件夹中。正式的项目中应该单独有一个resources文件夹放资源文件的。
 
然后回到前面的mainwindow.cpp,在构造函数中修改代码:
 
openAction =  new QAction(tr( "&Open"),  this); 
openAction->setShortcut(QKeySequence::Open); 
openAction->setStatusTip(tr( "Open a file.")); 
openAction->setIcon(QIcon( ":/Open.png"));  // Add code.
 
我们使用setIcon添加图标。添加的类是QIcon,构造函数需要一个参数,是一个字符串。由于我们要使用qrc中定义的图片,所以字符串以 : 开始,后面跟着prefix,因为我们先前定义的prefix是/,所以就需要一个/,然后后面是file的路径。这是在前面的qrc中定义的,打开qrc看看那张图片的路径即可。
 
好了,图片添加完成,然后点击运行,看看效果吧!
 
 
瞧!我们只需要修改QAction,菜单和工具条就已经为我们做好了相应的处理,还是很方便的!
 
下一步,为QAction添加事件响应。还记得Qt的事件响应机制是基于信号槽吗?点击QAction会发出triggered()信号,所以,我们要做的是声名一个slot,然后connect这个信号。
 
mainwindow.h
 
class MainWindow :  public QMainWindow 
{ 
        Q_OBJECT 
 
public: 
        MainWindow(QWidget *parent = 0); 
        ~MainWindow(); 
 
private slots: 
         void open();         
 
private: 
        QAction *openAction; 
};
 
因为我们的open()目前只要在类的内部使用,因此定义成private slots即可。然后修改cpp文件:
 
MainWindow::MainWindow(QWidget *parent) 
        : QMainWindow(parent) 
{ 
        openAction =  new QAction(tr( "&Open"),  this); 
        openAction->setShortcut(QKeySequence::Open); 
        openAction->setStatusTip(tr( "Open a file.")); 
        openAction->setIcon(QIcon( ":/Open.png")); 
        connect(openAction, SIGNAL(triggered()),  this, SLOT(open())); 
 
        QMenu *file = menuBar()->addMenu(tr( "&File")); 
        file->addAction(openAction); 
 
        QToolBar *toolBar = addToolBar(tr( "&File")); 
        toolBar->addAction(openAction); 
} 
 
void MainWindow::open() 
{ 
        QMessageBox::information(NULL, tr( "Open"), tr( "Open a file")); 
}
 
注意,我们在open()函数中简单的弹出一个标准对话框,并没有其他的操作。编译后运行,看看效果:
 
 
好了,关于QAction的动作也已经添加完毕了!
 
至此,QAction有关的问题先告一段落。最后说一下,如果你还不知道怎么添加子菜单的话,看一下QMenu的API,里面会有一个addMenu函数。也就是说,创建一个QMenu然后添加就可以的啦!

本文出自 “豆子空间” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/205958

Qt笔记-调整QToolBar中图标的尺寸 使用setIconSize方法设置ToolBar中的图标的尺寸;用来设置图标可以具有的最大尺寸,较小尺寸的图标并不会按比例放大。 QToolBar *fileToolBar; fileToolBar = addToolBar(tr("&File")); fileToolBar->addAction(newAction); fileToolBar->addAction(openAction); fileToolBar->addAction(saveAction); 图标都被控制在一 阅读详情

相关推荐

QT鼠标右键菜单的创建方法与示例

Qwidget和他的子类都可以有右键菜单,QWidget下与右键菜单有关的函数有: a)  Qt::ContentMenuPlicy contentMenuPolicy()  const b) void setContentMenuPolicy ( Qt :: ContentMenuPolicy policy ) 其中,a) 枚举类型有:Qt::DefaultContextMe

qssjh0356的专栏 3969

Qt MenuBar自定义Icon大小

Qt MenuBar自定义Icon大小

qq_39540537的博客 2442

Qt Creator中如何添加菜单图标

在下面的几节,我们讲述Qt的MainWindow主窗口部件。这一节只讲述怎样在其上的菜单栏里添加菜单和图标。 1.新建Qt4 Gui Application工程,将工程命名为MainWindow,其他选项默认即可。 生成的窗口界面如下图。其中最上面的为菜单栏。 2.我们在Type Here那里双击,并输入“文件(&F)”,这样便可将其文件菜单的快捷键设为Alt+F。(注意括号最好用英文半

sbisyju的专栏 1万+

qt添加菜单纯代码_Qt学习之路(13): 菜单和工具条(续)

前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦!首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。为了添加图标,我们首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File...,然后选择resource file。 然后点击next,选择好位置,F...

weixin_39934675的博客 213

Qt Designer中QToolBar的方向和图标大小属性设置与python实现

在使用Qt进行界面设计时,QToolBar是一个常用的工具栏,通过设置不同的方向和图标大小,可以使工具栏更加美观和易用。选中工具栏,打开“属性编辑器”,找到“orientation”属性,可以设置工具栏的方向,有四种选项:“Horizontal”、“Vertical”、“Left”和“Right”。至此,我们已经完成了在Qt Designer中设置QToolBar的方向和图标大小属性,并使用Python代码进行实现的操作。同样在“属性编辑器”中,找到“iconSize”属性,可以设置工具栏上图标的大小。

uote_e的博客 2772

OpenClaw 聪明设置指南(真实可用方案)

本文介绍了OpenClaw AI系统的配置与优化指南,主要内容包括:1)基础配置,涵盖初始化流程、安全设置和配置文件位置;2)模型分层策略,推荐主力模型与降级方案;3)性能优化,包括推理加速和内存管理;4)智能提升方法,如人格定义和技能安装;5)高级功能如多Agent协同和Token优化。文章提供了详细的配置命令和参数说明,帮助用户根据需求平衡性能与成本,实现高效AI助手部署。

qq_43344878的博客 709

Qt 之路 (13)—菜单和工具条(续)

前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦!        首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。为了添加图标,我们首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File…,然后选择resource file。 然后点击ne

时间在哪 成就就在哪 984

电子发票二维码背后的秘密:10分钟看懂校验码、加密字符含义与防伪设计

本文深入解析电子发票二维码的结构与防伪设计,揭示校验码和加密字符的生成原理及验证方法。通过实际案例和技术细节,帮助财务人员理解电子发票的安全机制,提升防伪识别能力,确保税务合规。

weixin_29248611的博客 528

QT跨平台应用程序开发框架(13)—— Qt界面样式优化

部分控件内部包含了多个“子空间”,比如 QComboBox 的下拉框的多个内容和 QSpinBox 微调框的上下选择按钮等,我们可以通过 子控件选择器“两个冒号”,针对子空间进行样式设置。创建好后,我们手动在电脑的文件管理器的项目目录下,新建一个 style.qss 文件,就和图片文件一样,只是图片变成了 .qss 文件,其余操作完全一致。问题解答:可以看到,当冲突的时候,局部样式的优先级大于全局样式,可以说是先渲染了全局样式,后渲染的局部样式,导致局部样式覆盖了全局样式。pressed 就是鼠标松开时。

aaqq800520的博客 1124

CentOS 7下Ollama+Dify+DeepSeek离线部署全攻略(附模型迁移技巧)

本文详细介绍了在CentOS 7无网环境下,从零开始离线部署Ollama、DeepSeek模型与Dify平台的完整实战攻略。内容涵盖基础环境规划、Ollama服务安装、模型文件迁移技巧、Docker引擎离线部署,以及Dify平台与本地Ollama服务的集成配置,为企业内网构建安全、可控的AI应用提供了一套经过验证的解决方案。

weixin_28826521的博客 348

Win10 IPv6 远程桌面连接(小米路由器)

背景 由于家里是移动网,且懒得向运营商要公网IPv4,所以想着用IPv6试一下。 家里的环境是这样的: 宽带用的是移动的,没有公网IPv4,但经过测试发现IPv6是公网的 上网通过光猫拨号,而不是通过路由器 路由器是小米AC2100 光猫更改为桥接模式 路由器必须要通过PPPoE拨号,如果是光猫拨号,那么要找对应的维护人员辅助你把光猫改成桥接模式。通过PPPoE拨号路由器就能够拿到公网的IPv6网段,也就可以给底下的其他服务分配公网IPv6了。而如果是光猫拨号,那么只有路由器可以拿到公网的IP。其他的设

timczm的博客 1万+

菜单和工具条-13

前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可 以相应啦! 首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。 为了添加图标,我们首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File...,然后选择resource file。  然后点击next,选择好位置,Finish即可。为了使用方便,我就把这个文件建在根目录下,建议应该在仔细规划好文件之后,建在专门的

啃骨头的小蚂蚁 444

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 439

Qt QListWidget右键弹出删除菜单

Qt QListWidget右键弹出删除菜单

m0_73443478的博客 2179

部署OpenClaw时设置环境变量提示export: not valid in this context的完整解决方案

OpenClaw环境变量设置错误解决方案 问题概述 在部署OpenClaw时设置环境变量出现"export: not valid in this context"错误,通常由以下原因导致: 在非交互式shell中使用export命令 在命令替换或管道中使用export 脚本文件包含Windows换行符(CRLF) 解决方案 修正脚本执行方式:确保export命令在正确的shell上下文中使用 使用source命令:通过. setup_openclaw.sh或source setup_op

博客 457

yolo 图像检测、关键点检测单摄像头测量物体尺寸长度大小

new_distance/real_size (待求物体像素距离与实际距离比值)= distance / metric_length (参照物像素距离与实际距离比值)然后运行size_demo进行要测量的物体进行关节点检测距离;metric_length是上面耳机选取的两个点的实际物理距离,大概6cm;这里用的windows。通过关键点检测识别物体关键点的像素距离,然后参考比例尺计算实际距离。2)关键点算法这里用的现有的进行测试,实际场景需要自己训练。这里拿这模型推理出的关键点坐标进行后续长度计算。

weixin_42357472的博客 2524

Qt入门系列--菜单栏

  菜单栏通常只有以QMainWindow为基类的程序中才用到,以QWidget为基类的程序通常没有菜单栏。本篇介绍Qt菜单栏相关操作,分为两部分:1.菜单栏相关的类介绍;2.系统菜单的生成和响应。 1. 菜单相关类   QMenuBar --菜单栏类,即下图中红色区域标记,菜单栏类给窗口提供水平菜单栏,此菜单栏占用窗口上方区域,垂直高度不变,水平宽度为窗口宽度,可随窗口大小变化而变化。如下图...

狂野战车的博客专栏 1344

从 QQ 聊天到 AI Agent:AstrBot + NapCat 接入 DeepSeek

<think>我们根据要求,根据提供的内容生成≤150字的文章摘要。内容是关于在Windows上使用Docker部署AstrBot+NaPCat,配置DeepSeek,实现QQ AI机器人。摘要需简洁概括主要步骤和结论。注意字数。</think>在Windows 11上通过Docker一键部署AstrBot与NapCat,实现QQ机器人。NapCat扫码登录QQ,AstrBot接入并配置DeepSeek API,完成AI对话。后续可扩展人格、插件及MCP工具,并通过cpolar提供公网管理入口,打造可扩展的

天道酬勤 1万+
上一篇: Qt学习之路(12): 菜单和工具条
下一篇: Qt学习之路(14): 状态栏
flowingFire2012
博客等级 码龄14年 6粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值