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等表格中添加右击菜单的主要内容,如果未能解决你的问题,请参考以下文章