美文网首页C++
17.QT右键菜单实现--Apple的学习笔记

17.QT右键菜单实现--Apple的学习笔记

作者: applecai | 来源:发表于2021-07-29 20:09 被阅读0次

一,前言

今天要刻意练习的是鼠标右键菜单。比如别人工具上某个地方右键则有不同的菜单弹出。若右键点击在table上也会读取些信息。

二,需求

实现鼠标右键功能。

三,遇到的问题

1. 如何让菜单在鼠标右击的时候显示
答:网上查了好几个方法,我用的方法是设置contextMenuPolicy为Qt::DefaultContextMenu,这个也是默认值。然后重写QWidget类的contextMenuEvent事件。
其它方法包括:
a.实现customContextMenuRequested信号的接口,并调用setContextMenuPolicy设置Qt::CustomContextMenu参数,使用connect链接。
b.重写父类的mousePressEvent函数,处理鼠标右键事件。
2.如何让menu在鼠标位置显示?
答:pMenuRight->exec(QCursor::pos())。编辑界面点击exec选F1后可以看到帮助,关于鼠标传递还有2种方式。
3. 如何判断鼠标位置是否包含某控件
答:方法是if(xxx->geometry().contains(this->mapFromGlobal(QCursor::pos()))),当然控件太多的话这样的方法就不适用了。或者将控件保存到控件list,通过扫描list来排除。

四,效果

就在之前的界面上再加一个右功能,但是我做完觉得有点不好,就是连按钮位置都可以有右键功能。控件过滤没有添加哦,将来有需要再加,反正解决方案已知。


image.png

五,小结

通过自己挖掘需求来进行刻意练习,我已经掌握了不少的技能了,好有成就感呢!我喜欢这样白手起家从头开始干的感觉~

相关文章

  • 17.QT右键菜单实现--Apple的学习笔记

    一,前言 今天要刻意练习的是鼠标右键菜单。比如别人工具上某个地方右键则有不同的菜单弹出。若右键点击在table上也...

  • mxgraph示例解析(-) menustyle右键菜单

    官方示例 实现原理 禁用右键菜单 创建右键菜单 简化示例

  • 使用js制作右键菜单项

    实现自定义右键菜单我们需要清楚浏览器默认的右键菜单触发的基本过程 ①:单击右键,菜单出现 ②:菜单出现,鼠标箭头一...

  • jquery_自定义鼠标右键

    一、自定义鼠标右键的实现原理 自定义右键菜单功能,需清楚,所有浏览器都自带了右键功能,那么自定义右键菜单,需要先屏...

  • 避免单纯以当前时间作为唯一标识

    近期遇到的一个问题,使用某个外部插件生成右键菜单,右键菜单内部实现以当前时间戳(milliseconds)为id,...

  • JS实现右键菜单

    今天来讲一个关于右键菜单的小demo,抛砖引玉。 首先,我们要用css和html做一个自定义右键菜单。 现在我们已...

  • 实现右键弹出菜单

    实现右击控件,弹出菜单效果: 假如要右击图片ImageView,弹出菜单项,实现步骤:1.给控件设置右击弹出菜单事...

  • 鼠标右键菜单实现

    1.初始化PopupMenu 2. 在控件MouseDown上增加右键监听事件

  • NSView实现右键菜单

    在macOS中,NSView有一个menu的属性,给这个属性进行赋值,即可实现右键弹出菜单 NSMenu *m...

  • 自定义NSButton实现右键菜单

    最终实现效果. 左键为普通按钮,右键会弹出一个菜单 实现方法 1, 重写NSButton 实现菜单中按键响应 2,...

网友评论

    本文标题:17.QT右键菜单实现--Apple的学习笔记

    本文链接:https://www.haomeiwen.com/subject/mtqtvltx.html