setContextMenuPolicy(Qt::CustomContextMenu); //添加右键菜单
connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(contextMenuSlot(const QPoint&)));
m_pMenu = new QMenu(this); //创建菜单项
m_pActUpdate = m_pMenu->addAction(QIcon(QDir::toNativeSeparators(BmpPath + QString(EICONCHANNEL))),tr(更新) ); //添加图标 和 文字内容
connect(m_pActUpdate, SIGNAL(triggered(bool)), this, SLOT(doAction(bool)));
void QDefinTblView::doAction(bool bCheckd) //槽函数
{
QAction* pAct = (QAction*)sender();
if (pAct->text() == 更新)
{
// updateDlg dlg(this, m_cCurIndex.column());
// dlg.exec();
}
}
void QDefinTblView::contextMenuSlot(const QPoint &pos) //槽函数
{
m_cCurIndex = this->indexAt(pos);
.....
m_pMenu->exec(QCursor::pos());
}
接下来看一下效果图,其他的选项和”更新“选项一样添加,相应的操作自定义,或者弹框实现