Qt在QTableWidget、View等表格中添加右击菜单

简介: Qt在QTableWidget、View等表格中添加右击菜单

先来看效果图,鼠标点在哪里菜单显示在哪里。

实现代码

在构造函数中设置右击菜单。并关联右击的槽函数。

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));//将菜单显示到鼠标所在位置
}



目录
相关文章
|
8月前
|
数据库 开发者 Windows
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-2
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
8月前
|
XML 设计模式 JSON
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-1
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
8月前
【qt】QTableWidget 表格组件3
【qt】QTableWidget 表格组件
118 0
|
8月前
【qt】QTableWidget 表格组件2
【qt】QTableWidget 表格组件
78 0
|
8月前
【qt】QTableWidget 表格组件1
【qt】QTableWidget 表格组件
65 0
《QT从基础到进阶·十》QTableView,QTableWidget,QLineEdit设置只读和输入限制
《QT从基础到进阶·十》QTableView,QTableWidget,QLineEdit设置只读和输入限制
400 0
Qt-网易云音乐界面实现-5 收藏列表,播放列表实现 QListWidget QTableWidget
先上目前完成的内容吧,发现后面越写越多。在看看点击量,心凉凉。
422 0
Qt-网易云音乐界面实现-5 收藏列表,播放列表实现 QListWidget QTableWidget
QT应用编程: 导出QTableWidget数据写入到Execl表格
QT应用编程: 导出QTableWidget数据写入到Execl表格
549 1
|
存储 程序员 C#
Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)
Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)
Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)
QT应用编程: QTableWidget删除选中的多行与全选、取消全选
QT应用编程: QTableWidget删除选中的多行与全选、取消全选
1114 0
QT应用编程: QTableWidget删除选中的多行与全选、取消全选