0
点赞
收藏
分享

微信扫一扫

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


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

文章目录

  • ​​Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法​​
  • ​​1. 前言​​
  • ​​2. 思路及主要代码​​
  • ​​3. 注意点:右键时按钮不出现​​
  • ​​4. 结果​​

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

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


举报

相关推荐

0 条评论