Qt实现点击菜单项后QMenu不关闭功能

Qt实现“点击菜单项后QMenu不关闭”功能

题目里的意思说起来有点儿绕嘴。其实是这么个事:在QMenu里添加了很多QAction项,每项都使能了check,就是前面可以加上小勾勾那种。假如要勾上QAction1的小勾勾、勾掉QAction2的小勾勾,按照Qt默认的操作,要先点开QMenu的下拉菜单,点QAction1,这时下拉菜单消失了,需要再点开下来菜单去点QAction2。这就比较麻烦了对不对?这还只是两个QAction,要是搞十几个QAction,就问你烦不烦?我想实现个什么功能呢,就是点开下拉菜单,在我修改小勾勾时候菜单不消失,改完了在下拉菜单之外点一下,这时菜单才消失不见。肿木搞呢?下面来说说方法。

首先从QMenu派生个自己的类,姑且叫MyMenu吧,定义如下图:

action是当前鼠标所在的菜单项对应的QAction,如果鼠标点在QAction上了,我们期望的动作是触发这个QAction,但不让下拉菜单消失,对不对?那么在action不为空的情况下,我们执行action->activate,这样只是点击了QAction而已;而如果action为空,那就说明鼠标在菜单之外,这时就要执行关闭下拉菜单的操作了,于是我们调用基类的方法QMenu::mouseReleaseEvent。我们知道在基类中的处理是关闭下拉菜单,这样就实现了期望的功能。

Qt实现点击菜单项后QMenu不关闭功能相关教程

qmenu qt 关闭,Qt实现点击菜单项后QMenu不关闭功能相关推荐

  1. 为什么即使调用EnableMenuItem菜单项后,菜单项还处于禁止状态

    需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员 为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者 ON_COM ...

  2. qt添加菜单纯代码_QtCreator插件开发(二)——QtCreator菜单和菜单项

    QtCreator插件开发(二)--QtCreator菜单和菜单项 一.QtCreator菜单栏简介 1.QtCreator菜单简介 QtCreator菜单栏如下: QtCreator默认菜单包括&q ...

  3. qt添加菜单纯代码_Qt Creator 插件开发(3):添加菜单项

    本章我们将学习如何向 Qt Creator 的菜单栏添加内容.在上一章插件的基础之上,我们将尝试开发一个比较正式的插件--在菜单栏中可以看到,并且可以相应用户动作等. 在我们开始之前,我们先来看看 Q ...

  4. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  5. Qt实现Linux下模拟点击界面,如何利用QT实现模拟鼠标点击?

    QT入门,windows开发入门选手. 我想利用QT实现一个模拟鼠标点击的功能(Windows平台),具体来说是这样的:首先获取某个特定名称窗口的句柄,然后再模拟单击这个窗口的特定位置,并且要求窗口可 ...

  6. QT鼠标悬停和点击功能

    一.效果展示  二.代码实现 childWidget.h #pragma once #include <QtWidgets/QWidget> #include <QStyleOpti ...

  7. Qt5.9关闭子窗口时执行特定代码(析构函数、关闭窗口)(setAttribute(Qt::WA_DeleteOnClose)、closeEvent(QCloseEvent* event))

    本文主要总结在关闭qt的QWidget子窗口瞬间,执行特定代码.由于主窗口关闭时,会自动执行析构函数,而子窗口关闭时,却不会调用析构函数,进过博主查阅资料,发现有两种方法可以在子窗口关闭时,调用析构函 ...

  8. Qt的QProgressDialog使用两条总结(去掉帮助和关闭、设置尺寸)

    1.去掉界面的"?"和"×": progressDialog->setWindowFlags(Qt::CustomizeWindowHint|Qt::Wi ...

  9. 【Qt】Qt学习笔记(更新中)

    文章目录 0x00 前言 0x01 Qt简介 1.1 Qt是什么 1.2 Qt发展史 1.3 Qt支持的平台 1.4 使用Qt开发的软件 1.5 Qt的优点 1.6 其它 0x02 创建Qt项目 2. ...

最新文章

  1. events.out.tfevents文件
  2. C语言实现阿姆斯特朗数armstrong number算法(附完整源码)
  3. 上云数据分析首选产品Quick BI的可视化之路
  4. linux串口编程实例_Linux 网络编程——原始套接字实例:发送 UDP 数据包
  5. Spring Data JPA教程,第一部分: Configuration(翻译)
  6. 浪潮通信收入_浪潮获2019大数据“星河(Galaxy)”奖
  7. 小程序 ---- (setData关于赋值对象属性的问题)
  8. Android实现录屏直播(一)ScreenRecorder的简单分析
  9. c语言控制单片机38译码器,单片机+38译码器控制的数码管怎么点亮?
  10. html把中文转成英文,html转换中英文
  11. 三个三维矢量叉乘公式(拉格朗日矢量公式)推导(非坐标法)
  12. 提供全套Python教学资源和考试系统,全力打造良心服务
  13. 阿里云——杭州云栖大会
  14. Rust FFI 编程 - nix crate
  15. 金融相关计算机面试题,银行及其他金融企业笔试和面试经验
  16. 毕业论文使用的卡方检验该如何分析?
  17. 提示用户更改计算机密码,验证你的Microsoft账户 温馨提示:在个人电脑上更改微软账户密码...
  18. Python:for循环语句
  19. Codeforces847M Weather Tomorrow
  20. 指定的服务器标记为删除,如何解决“指定的服务已被标记为删除”错误

热门文章

  1. 央行降息开始 房价下跌不行也要行
  2. Android Bitmap Drawable 常用摘要
  3. 硬盘引导扇区、多分区图、不通硬盘的LINUX逻辑分区数量
  4. HDU2050 折线分割平面【切割平面】
  5. Serializable 接口与 Java 序列化与反序列化
  6. NVIDIA 显卡信息(CUDA信息的查看)
  7. matlab 稀疏矩阵(sparse matrix)
  8. Python Tricks(六)—— 删除一个可迭代序列中等于某值的全部元素
  9. 泊松分布的理解与Python仿真
  10. python函数定义及调用-浅谈Python中函数的定义及其调用方法