1.信号槽连接
ui.tableView->setContextMenuPolicy(Qt::CustomContextMenu);//右键菜单
connect(ui.tableView, &QTableView::customContextMenuRequested, this, &CShowInterpretWidget::slotShowMenu);
2.槽函数
void CShowInterpretWidget::slotShowMenu(const QPoint &pos)
{
// 获取右键时 Qtableview 中的项
QModelIndex t_index = ui.tableView->indexAt(pos);
if (t_index.isValid())
{
m_cwName = t_index.data().toString();
Q_UNUSED(pos);
m_mainMenu = new QMenu(this);
m_mainMenu->addAction(QString::fromLocal8Bit("修改信息"));
m_mainMenu->addSeparator();
m_mainMenu->addAction(QString::fromLocal8Bit("隐藏"));
m_mainMenu->addSeparator();
m_mainMenu->addAction(QString::fromLocal8Bit("显示"));
m_mainMenu->addSeparator();
m_mainMenu->addAction(QString::fromLocal8Bit("删除"));
connect(m_mainMenu, SIGNAL(triggered(QAction*)), this, SLOT(slotShowModifyWind(QAction*)));//这行代码似乎只能放在exec前面。这里是菜单的里面的信号槽
m_mainMenu->exec(QCursor::pos());
}
}