Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法

2023-11-18

Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法


1. 前言

Qt数据库操作中大部分用来读取,某些时候用来修改某一个数据,这两个都好实现,通过重写QSqlQueryModel来进行限制哪些位置可以单击修改,哪些位置只读即可。那么如果我们要给某一行添加右键选项进行整行的操作,怎么处理那,接下来我们就来总结一下。

2. 思路及主要代码

  • 1.设置tableview点击某一位置时直接选中一行
  • 2.设置tableview使用自定义内容按钮
  • 3.设置并连接tablewview对应的自定义内容按钮信号槽
  • 4.在tablewview自定义槽函数中创建QMenu
  • 5.创建QAction设置后添加到QMenu中
  • 6.绑定QAction点击的信号和槽函数
  • 7.结束并定位按钮位置

代码如下:

//1.设置tableview点击某一位置时直接选中一行
ui->carConfigChangeTableView->setSelectionBehavior(QAbstractItemView::SelectRows);

//2.设置tableview使用自定义内容按钮
ui->carConfigChangeTableView->setContextMenuPolicy(Qt::CustomContextMenu);

//3.设置并连接tablewview对应的自定义内容按钮信号槽
connect(ui->carConfigChangeTableView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(on_carConfigChangeTableView_customContextMenuRequested(QPoint)));
//或直接在设计师中右键信号槽直接实现信号擦

//4.在tablewview自定义槽函数中创建QMenu
QMenu *carConfigChangeMenu = new QMenu();

//5.创建QAction设置后添加到QMenu中
QAction *actionAddCar = new QAction("添加入网设备", this);
carConfigChangeMenu->addAction(actionAddCar);

//6.绑定QAction点击的信号和槽函数
connect(carConfigChangeMenu, SIGNAL(triggered(QAction*)), this, SLOT(carConfigChangeMenuAddAction(QAction*)));
//carConfigChangeMenuAddAction就是action对应的槽函数

//7.结束并定位按钮位置
carConfigChangeMenu->exec(QCursor::pos());

3. 注意点:右键时按钮不出现

右键按钮QMenu没有在结束时设置定位,就会出现右键按钮不出现的问题。

4. 结果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法 的相关文章

  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • 程序意外完成 - QT Creator

    我正在尝试使用 QT Creator 使用 QT 框架开发 GUI 控制台应用程序 我使用的是Windows XP 我安装了QT 4 8 3和mingw 两者均已安装 没有任何错误 然后我安装了QT Creator QT 版本 路径中的 Q
  • Qt Creator:如何区分 win32 和 win64

    我必须在 pro 文件中执行类似的操作 win32 LIBS L 3rdparty libusb win32 lib msvc llibusb else win64 LIBS L 3rdparty libusb win32 lib msvc
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 错误 LNK2001:无法解析的外部符号 __CxxFrameHandler3

    我正在将 Qt 从 VS 2013 迁移到 Qt 5 10 1 到 VS 2015 出现以下多个链接错误 error LNK2001 unresolved external symbol CxxFrameHandler3 error LNK
  • 在 Qt5 中,是否需要 Q_INVOKABLE 来从 QML 调用公共 QObject 函数?

    我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数 现在我对 Q INVOKABLE 很好奇 Qt5docs http doc qt io qt 5 qtqml cppintegration exposecppattributes
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示
  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • QToolButton:更改菜单位置

    使用菜单时QToolButton菜单显示在按钮的正下方 有没有办法在按钮的左侧 右侧显示菜单 我知道这个问题不久前已得到回答 但我想为此问题添加新答案 因为接受的答案不再有效 实际上 更改 QToolButton 上的菜单位置非常容易 您需
  • Qt 插槽是否与其他代码并行运行?

    在此函数示例中 void MyClass myFunction emit MySignal1 emit MySignal2 如果我有slot1倾听MySignal1 and slot2倾听MySignal2 1 Is slot1总是会在之前
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • QT从QTableWidgetItem继承到Widget并覆盖'<'运算符

    我想要一个QTableWidget具有定制的某些单元QProgressBars 并且我希望能够对包含这些的列进行排序 我的定制QProgressBar继承自两者QProgressBar and QTableWidgetItem 并且我正在覆
  • Qt 5.6 测试版 Visual Studio 2015

    我已经安装了这个 http download qt io development releases qt 5 6 5 6 0 beta qt opensource windows x86 msvc2015 5 6 0 beta exe mi
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub

随机推荐

  • 80. 删除有序数组中的重复项 II

    Powered by NEFU AB IN Link 文章目录 80 删除有序数组中的重复项 II 题意 思路 代码 80 删除有序数组中的重复项 II 题意 给你一个有序数组 nums 请你 原地 删除重复出现的元素 使得出现次数超过两次
  • 和愚蠢的人打交道_如何与工作困难的人打交道

    和愚蠢的人打交道 Humans are social creatures who seek personal validation based on how others interact with them We feel good an
  • (转) serialVersionUID作用

    Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的 在进行反序列化时 JVM会把传来的字节流中的serialVersionUID与本地相应实体 类 的serialVersionUID进行比较 如果相
  • C++11 -- 包装器

    文章目录 function包装器 function包装器的概念 function的运用 function实例化 使用function解决逆波兰表达式 bind包装器 bind包装器相关介绍 bind调整函数形参传参顺序 bind绑定函数固定
  • 双机热备,如何用浮动IP跨网络访问异地服务

    环境是这样的 本地有两台服务器A B A 192 168 151 170 主 B 192 168 151 171 备 双机的浮动IP 192 168 151 174 承载网IP 10 182 254 164 异地服务端 172 16 122
  • python怎么去除字符串的空格、回车

    内容取此 str 123 456 print str strip 去除左右两边的空格 print str lstrip 去除左边的空格 print str rstrip 去除右边的空格 print str replace 去除字符串全部空格
  • ELK详解(十七)——filebeat输出到Redis和Elasticsearch实战

    今天继续给大家介绍Linux运维相关知识 本文主要内容是使用filebeat将日志输出到Redis和Elasticsearch的实战配置 在ELK详解 十六 filebeat安装与使用一文中 我们介绍了filebeat的安装 部署和简单应用
  • 基于SpringBoot-Dubbo的微服务快速开发框架

    简介 基于Dubbo的分布式 微服务基础框架 为前端提供脚手架开发服务 结合前一篇 Web AP快速开发基础框架 可快速上手基于Dubbo的分布式服务开发 项目代码 https github com backkoms web service
  • 微信小程序最新获取头像昵称方式

    前言 版本历史变迁 一 获取头像的正确姿势 二 获取昵称的正确姿势 总结 前言 产品需要获取微信用户的昵称和头像 这这还不简单 so easy 通过wx getUserProfile或者 wx getUserInfo 就可以获取到 但是获取
  • Nacos安装配置详细流程

    快速导航 1 Nacos安装 1 1概述 1 2 下载 1 3 安装 1 4 启动和关闭 1 5 测试 2 Nacos持久化 2 1为什么持久化 2 2配置Nacos持久化 2 2 1 切换数据库 2 2 2 初始化数据库 2 2 3 测试
  • tensorflow LeNet

    LeNet 即 LeNet5 由 Yann LeCun 在 1998 年提出 做为最早的卷积神经网络之一 是许 多神经网络架构的起点 其网络结构如图 下所示 借鉴点 共享卷积核 减少网络参数 在后期发展中 降采样层被 m a x p o o
  • HTML5 canvas 圆环扩散效果

    canvas 圆环扩散效果 使用 HTML5 canvas 制作圆环扩散的效果 以下是效果图 下面是实现代码 仅供参考 转载请注明出处 如有问题请联系 页面元素
  • TensorFlow2学习(三):keras 函数api

    文章目录 1构建简单的网络 1 1创建网络 1 2训练 验证及测试 1 3模型保持和序列化 2 使用共享网络创建多个模型 3 复杂网络结构构建 3 1多输入与多输出网络 3 2小型残差网络 4 共享网络层 5 模型复用 6 自定义网络层 完
  • quartus 中出现的问题总结

    quartus 中出现的问题总结 下面展示报错 A code block Start time 16 27 28 on Mar 25 2020 Error vsim 3170 Could not find fulladder1 vlg ts
  • 机器学习&数据挖掘:特征选择之 wrapper approach

    在前面简要介绍了特征选择的Filter方法 由于Filter方法还有很多 在此不能一一介绍 Filter方法从原始特征中选择特征子集 用于后续的机器学习算法 由于Filter在特征选择时 没有考虑到所用的机器学习算法模型 可能会导致选择出的
  • git命令学习——将本地代码推送到远程新建仓库

    在远程 如gitee 中新建一个仓库后复制仓库链接 打开git Bash或者CMD 初始化本地仓库 git init 添加全部修改的文件 git add 注意不要漏了 编写提交说明 git commit m 提交说明 连接远程仓库 git
  • S3C2440之LCD的初始化配置

    pre class objc pre class objc define LADDR 0x30800000 define HMIX 240 define VMIX 320 unsigned short addrbuf unsigned sh
  • 15种常用ARGB颜色

  • 【原创】always语句 和 initial语句

    过程语句 有 always语句 和 initial语句 相同点 1 always语句 和 initial语句 可以多次使用 2 always语句 和 initial语句 各语句块 整体 是独立运行 3 always语句 和 initial语
  • Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法

    Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法 文章目录 Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法 1 前言 2 思路及主要代码 3 注意点 右键时按钮不出现 4 结果 1 前言 Qt数据库操作中大部分