在Qt中点击按钮弹出菜单,这是一个很实用的功能,实现起来也容易,调用QPushButton的setMenu方法即可,但是某些时候由于代码实现问题,可能出现需要两次点击才弹出菜单,第一次点击按钮右侧出现箭头,第二次点击才弹出菜单,而且菜单不是居中显示,这些问题该如何处理呢?

这是由于在按钮的槽函数中写弹出菜单的代码,相当于触发了两次信号,正确的写法是在构造函数,或者槽函数外面实现菜单,并给按钮设置菜单,按钮的槽函数只做弹出菜单的操作。

点击按钮弹出弹出菜单的代码

.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMenu>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();public slots:void on_btnSet_clicked();private:Ui::Widget *ui;QMenu* m_pSetMenu;
};
#endif // WIDGET_H

.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);m_pSetMenu = new QMenu(this);QAction *pAct1 = new QAction("game mode", this);QAction *pAct2 = new QAction("work mode", this);QAction *pAct3 = new QAction("help", this);m_pSetMenu->addAction(pAct1);m_pSetMenu->addAction(pAct2);m_pSetMenu->addAction(pAct3);ui->btnSet->setMenu(m_pSetMenu);
}Widget::~Widget()
{delete ui;
}void Widget::on_btnSet_clicked()
{m_pSetMenu->exec(QCursor::pos());
}

运行结果

Qt点击按钮两次才弹出菜单如何解决相关推荐

  1. 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题

    如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 参考文章: (1)如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 (2)https://ww ...

  2. file input 点击没反应_解决input file按钮要点击两次才弹出选择文件窗口

    相信很多人都碰到过这个问题,文件上传控件透明后有的要点击两次才能弹出选择文件窗口,这里将将介绍如何避免要双击,只需要单击是可以实现的. 本来一直无心留意这个图片上传file按钮的BUG,因为有时候为了 ...

  3. popupmenu java_Java基于JPopupMenu实现系统托盘的弹出菜单,解决PopupMenu弹出菜单中文乱码...

    本人萌新,利用业余时间学习Java.最近在写一个GUI程序的时候遇到一个问题,系统托盘创建弹出菜单中文乱码,网上搜索很多内容都没有找到解决方案,现将个人解决方案分享给大家,希望有所帮助 一.Popup ...

  4. jq点击按钮打开和关闭弹出层,点击除了当前按钮以外的地方关闭弹出层

    1.html <a id="more" οnclick="moreFun()">更多</a> <ul id="moreL ...

  5. 小程序中,点击按钮或者图标,弹出输入框和键盘

    和微信的评论区一样,点击评论按钮,才出现输入框和键盘 HTML <text bindtap="ShowInput">点击出现input框和键盘</text> ...

  6. 微信小程序 长按图片不出现菜单_HTML5微信长按图片不会弹出菜单的解决方法

    UGUI 学习笔记 1.UGUI中是没有depth的概念,那要怎么在脚本中动态的改变一个UI元素在hierarchy中的排序位置呢? 放到最上面 Transform.SetAsFirstSibling ...

  7. VFP按钮弹出菜单,今天来讲两个方法,非常实用

    我们在开发界面的时候,有时候工具栏菜单太多,看一个按钮是不是可以弹出一个菜单,这样就可以多做很多的入口了,而且不占用工具栏空间. 首先来看下效果,加图标会更好看 VFP的弹出菜单指令 DEFINE P ...

  8. 用Dreamware制作弹出菜单

    弹出菜单在网页制作中是一种非常常用的菜单方式,这种菜单不但制作简单,而且效果也很好. 效果说明 本实例所要完成的效果是当鼠标移动到文字上时,就会弹出一个漂亮的菜单,如下图所示. 弹出菜单在网页制作中是 ...

  9. qt qtoolbutton 弹出菜单方向_QT使用教程(三)之安装篇

    在本节内容简单介绍下window系统下Qt的安装,如需要其他系统安装教程,可以私聊我. 请提前下载好要安装的Qt版本,很早之前我就安装了Qt 5.8.0,就不再安装其他版本了, 安装之前需注意: 1. ...

  10. android qq右上加号,仿QQ空间点击加号弹出菜单特效

    最近项目需要,前几天写了一个仿微信相册(包括编辑相册)功能,审核代码的时候发现同事要实现一个类似仿QQ空间点击加号弹出菜单特效,于是看了一些他的代码,我发现虽然他实现了功能,但是不够完善,所以我又花了 ...

最新文章

  1. 今天我的Windows Phone 7 HTC HD7 手机 升级 NoDo 了 分享一下经验
  2. 未来,中国空间站将成为怎样的“太空科研站”?
  3. Safari回传值给应用程序
  4. Google云服务降价,整合持续集成工具,支持Windows和托管虚拟机
  5. Mybatis下collections使用pageHelper进行分页
  6. python提取视频帧并保存_python tools实现视频的每一帧提取并保存
  7. Shell笔记5——函数的知识与实践
  8. element-UI-tab选项卡
  9. #《机器学习》_周志华(西瓜书)南瓜书_第4章 决策树
  10. Android开发 -使用腾讯TBS浏览服务 X5webview控件
  11. 汉字字符集编码查询 unicode编码查询
  12. 【学习笔记】福州大学网络课程 网络空间安全概论(1,4)
  13. CSS、Bulma介绍
  14. 【评测】常用免疫细胞培养基
  15. 运维自动化工具Cobbler之——安装实践
  16. 脱颖而出:为您的独立游戏扩大客户群 游戏运营
  17. 区块链技术与应用行业分析报告
  18. java调用python 踩的坑
  19. SpringBoot使用validator校验
  20. shopee店铺数据分析(二)

热门文章

  1. 远程控制teamviewer|远程桌面teamviewer|远程桌面连接软件teamviewer|teamviewer无人值守
  2. Android9怎么剪辑音频,Timbre – 安卓(Android )视频剪辑软件,在手机上对视频、音频进行合并、剪辑、格式转换、分割...
  3. Pano2VR热点热区热点替换
  4. 洛雪音乐助手 0.18.2 — 音乐下载工具
  5. Python批量下载抖音大V主页视频
  6. 星广互动推出全球首个智能AR广告平台 重塑UGC视频广告价值
  7. 快速下载网页全部图片的方法
  8. [任天堂社长访谈之:Nintendo 3DS内置软件
  9. attention 文字识别算法_一文带你了解文字识别
  10. 卡诺模型案例分析_需求分析神器 | 如何用卡诺模型分析需求