qt创建右键菜单,显示在鼠标点击处

引言

给窗口创建右键菜单,右键的时候,右键菜单出现在鼠标点击处。同时设置右键菜单的样式,右键菜单为圆角,起初设置样式的时候,右键菜单的背景在圆角边缘会出现黑色的方角,不能很好的显示为圆角,后来设置了右键菜单无标题栏,背景透明和固定大小后可以了

实现

void LayoutListWidget::createRightMenu()
{m_menu = new QMenu(this);m_actionDel = new QAction(QStringLiteral("删除"),m_menu);m_menu->addAction(m_actionDel);m_actionModifyName = new QAction(QStringLiteral("修改名称"),m_menu);m_menu->addAction(m_actionModifyName);m_actionSceneLinkage = new QAction(QStringLiteral("场景联动"),m_menu);m_menu->addAction(m_actionSceneLinkage);//保存创建的右键菜单,初始所有的都没有显示
//    m_isDisplayRightMenu.insert(m_menu,false);setRightMenuStyle();
}
void LayoutListWidget::setRightMenuStyle()
{m_menu->setWindowFlag(Qt::FramelessWindowHint);m_menu->setAttribute(Qt::WA_TranslucentBackground);//菜单圆角QString styleSheet;styleSheet.append("QMenu{font-size: 18px;font-family: Microsoft YaHei;""font-weight: 400;color: #FFFFFF;border-radius: 10px;""background-color: rgb(8, 7, 91);border: 1px solid #01B5EF;}""QMenu::item{width:178px;height:40px;""padding-left:28px;margin-top:25px;}"//设置与上边框界限的距离"QMenu::item:selected{background-color: #01E4EE;}");m_menu->setFixedSize(180,210);m_menu->setStyleSheet(styleSheet);
}
void LayoutListWidget::on_LayoutListWidget_customContextMenuRequested(const QPoint &pos)
{Q_UNUSED(pos);if (m_menu != nullptr && m_delId != 0) {m_menu->exec(QCursor::pos());//右键菜单在点击点位置}
}

上述代码实现了右键菜单的创建,样式的设置,以及点击右键的时候使右键菜单出现在鼠标点击处。

重点

1.右键菜单的样式为圆角,需要在设置样式前先设置右键菜单的没有标题,背景透明,固定大小;
2.右键菜单出现在鼠标右键点击处,使用自带的槽函数customContextMenuRequested(const QPoint &pos)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无剧透 | 分析《复联》英雄得出的结论:什么样的技术人适合做管理?

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!转自:技术领导力作者:力小哥/技术领导力社区特约撰稿人4月24日…

Centos7 使用Docker 部署Nginx+mysql+tomcat+调试联通_03

文章目录Nginx部署1. 拉取Nginx镜像2. 创建Nginx容器3. 测试Nginx4. 配置反向代理5. 浏览器nginx容器和tomcat容器联通测试6. 浏览器tomcat容器和mysql容器联通测试7. 浏览器注销接口测试Nginx部署 1. 拉取Nginx镜像 docker pull nginx2. 创建Nginx容器 docker run -di --na…

qt种实现搜索栏功能

引言 在搜索栏种输入要搜索的文本,就会出现相关联的文本提示,这是可以通过鼠标选中要搜索的文本,或者通过上下键选中要搜索的文本。 效果 效果图如下所示: 实现 下面是相关的代码实现,读者只需参考,理解…

Docker Redis部署_04

Docker Redis部署部署 1. 拉取Redis镜像2. 创建Redis容器3. 客户端测试 1. 拉取Redis镜像 docker pull redis2. 创建Redis容器 docker run -di --namepinyougou_redis -p 6379:6379 redis查看redis容器是否已经运行: docker ps3. 客户端测试 在你的本地电脑命令提…

关于谷歌云,你应该知道的一切! | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!译者:风车云马 在国内,“谷歌云”这个词并不像“亚马逊AWS”、“微软Azure…

qt构建json字符串的时候,某一个值为字符串

引言 构建json字符串的值时,其值为一个json对象组成的字符串。下面记录一下。 实现 直接上代码来说明问题。 QJsonDocument subDoc;subDoc.setObject(subObject);QByteArray array subDoc.toJson(QJsonDocument::Compact);QString customValue array; …

Docker 容器导出为镜像

Docker 镜像备份与迁移 1. 容器保存为镜像2. 镜像备份3. 镜像恢复与迁移 1. 容器保存为镜像 我们可以通过以下命令将容器保存为镜像 docker commit pinyougou_nginx mynginxpinyougou_nginx是容器名称mynginx是新的镜像名称 pinyougou_nginx容器已经成功保存为mynginx镜像&…

qt动态添加窗口到垂直布局

引言 程序运行的过程中根据需要动态的创建窗口,每创建一个窗口,就加入列表中,使其竖直展示各个窗口。这样的操作实际是每创建一个窗口,就将其加入到垂直布局中,当点击不同的窗口时能够实现对被点击窗口的区分&#xf…

Storm精华问答 | Kafka在Storm中的角色是什么?

戳蓝字“CSDN云计算”关注我们哦!Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等, 大数据实时处理…

SonarQube开机自启动

1、创建服务 vi /etc/init.d/sonar内容如下,其中标红内容为服务绝对路径: #!/bin/sh # # rc file for SonarQube # # chkconfig: 345 96 10 # description:SonarQube system (www.sonarsource.org) # ### BEGIN INIT INFO # Provides:…

qt通过代码创建滚动区域,添加滚动区域到窗口

引言 继承于QWidget创建的项目,要想在QWidget中添加很多子控件,考虑到若是子控件的数目不确定,太多的时候就需要添加滚动条来实现滚动查看,于是可以自定义一个类,在该类中实现滚动区域和滚动窗口的创建,然…

SwitchHosts提示切换hosts失败!没有修改'C:\WINDOWS\system32\drivers\etc\hosts'的权限问题

文章目录1. 找到hosts文件2. 右键属性3. 去除只读勾选4. 属性安全编辑5. 点击选择修改和写入即可1. 找到hosts文件 根据将地址粘贴到窗口进行搜索找到"hosts"文件 地址: C:\Windows\System32\drivers\etc2. 右键属性 鼠标放在hosts文件上右键属性 3. 去除只读勾…

使用云原生buildpacks将你的代码转换成Docker Image | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!当我们在大概七年前将buildpack技术开源的时候,我们就知道这项技术将大大简…

qt设置鼠标追踪后,鼠标还是需要点击后才能变样式

引言 鼠标在窗口的四个边和四个角后会显示不同的样式。在构造函数中设置了鼠标追踪,但是鼠标依然需要点击后才能改变样式,究其原因是只设置了父窗口的鼠标追踪,没有设置子控件的追踪,当然是子控件与父窗口的鼠标追踪有关才需要设…

Docker镜像备份与迁移

文章目录1. 将容器备份成镜像2. 将镜像备份成本地文件3.从本地加载备份文件恢复镜像1. 将容器备份成镜像 用centos镜像创建一个名称为mycentos的容器 docker run -id --namemycentos centos:7查看所有容器 docker ps -a将容器mycentos保存为镜像 docker commit mycentos my…

明星企业内推+BAT面经,长三角的开发者联合起来!

戳蓝字“CSDN云计算”关注我们哦!“为什么公司宁愿花20K招新人,也不愿给老员工加到20K?”这个热门的微博话题戳起了很多人的痛处,但根据 CSDN &《程序员》杂志发布的「中国软件开发者薪资调查报告」,有32.98%的开发…

Spring4.x整合Axis1.4发布WebService服务

Spring4.x整合Axis1.4发布WebService服务 文章目录一、服务端部署1. 在web.xml文件中添加映射路径和spring监听2. 添加spring-axis.xml配置文件3. 添加server-config.wsdd配置文件4. 对外发布服务外壳类5. 添加接口类6. 添加接口逻辑实现类7. 浏览器测试二、客户端部署2.1 axis…

阿里云亚太市场份额第一;AWS宣布在香港推出新区域;Facebook出成绩单;微软在美国西部开建第五个大型云平台...

戳蓝字“CSDN云计算”关注我们哦!重磅先知 Gartner:阿里云亚太市场份额第一AWS宣布在香港推出新的区域一直在水逆的Facebook出成绩单微软在美国西部开建第五个大型云平台重磅快报Gartner:阿里云亚太市场份额第一4月24日,市场研究…

qt私有信号拙见

理解 信号在使用的时候,一般在类中声明为私有信号,直接在拥有该信号的类中调用emit发送,但是可以在其它类中来通过创建拥有该信号的类对象,并通过connect()函数来绑定该私有信号与相应的槽函数。当然,私有信号只能在本…

1s完成 大文件分割方案

按行数分割方案: 执行命令: split -l 1000 i.txt -d -a 4 gblfy_格式:split -l 行数 文件名 -d -a 4 gblfy_ 解析: 1、每个文件1000行(-l 1000); 2、文件名称后缀系数不是字母而是数字(-d)&…