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

本文介绍了如何在Qt中为数据库表格添加右键选项功能,包括设置表格选择行为、自定义右键菜单、创建QAction及绑定槽函数。在实现过程中,特别提到了一个常见问题——右键菜单不显示,原因是未正确定位菜单。通过设置菜单结束位置,确保了右键按钮的正常显示。
摘要由CSDN通过智能技术生成

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. 结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称系统有问题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值