Qt在QTableWidgetView等表格中添加右击菜单
Posted 林夕07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt在QTableWidgetView等表格中添加右击菜单相关的知识,希望对你有一定的参考价值。
先来看效果图,鼠标点在哪里菜单显示在哪里。
实现代码
在构造函数中设置右击菜单。并关联右击的槽函数。
ui.tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);//设置右击菜单
connect(ui.tableWidget, &QTableWidget::customContextMenuRequested, this, &QtTableWidgetMenu::onShowMenu);
再根据右击的pos位置,判断点击的QTableWidget位置中是否有Item。如下图空白这种情况,需要过滤掉。
void QtTableWidgetMenu::onShowMenu(QPoint pos)
QTableWidgetItem* selectedItem = ui.tableWidget->itemAt(pos); //获取右击的item
if (nullptr == selectedItem)
return;
QMenu* menu = new QMenu(this);//创建菜单
QAction* action = new QAction(u8"查看详细资料", this);//创建一个action
menu->addAction(action);//将action放入菜单中
menu->popup(ui.tableWidget->viewport()->mapToGlobal(pos));//将菜单显示到鼠标所在位置
以上是关于Qt在QTableWidgetView等表格中添加右击菜单的主要内容,如果未能解决你的问题,请参考以下文章