****第一步 把QTreeView指针的customContextMenuRequested信号连接到槽函数, 设置setContextMenuPolicy(Qt::CustomContextMenu)(此函数为QTreeView成员)****
bool bC2 = connect(m_geodeView, SIGNAL(customContextMenuRequested(const QPoint&)), m_nodeOperation, SLOT(slot_customContextMenuRequested(const QPoint&)));
****第二部 槽函数****
void NodeOper::slot_customContextMenuRequested(const QPoint & pos)
{
QTreeView* treeView = qobject_cast<QTreeView*>(sender()); // sender()是QObejct的函数,用来获取连接时信号的发射指针
if (!treeView)
{
return;
}
QModelIndex index = treeView->indexAt(pos);
if (index.isValid())
{
QMenu menu;
menu.addAction("Show");
menu.addAction("delete");
menu.exec(QCursor::pos()); //QCursor::pos()让menu的位置在鼠标点击的的位置,
}
}
QTreeView右键菜单
最新推荐文章于 2025-11-17 22:50:55 发布
本文介绍如何在QTreeView中实现自定义右键菜单的功能。首先通过连接QTreeView的customContextMenuRequested信号到槽函数,然后在槽函数中根据鼠标位置显示预定义的菜单项。
3974

被折叠的 条评论
为什么被折叠?



