树状列表右击事件(添加 删除 修改等操作)
思路:首先我们需要一个void contextMenuEvent(QContextMenuEvent * event); 管理Menu事件的一个接口 此接口为系统自带的,不需要人为的去调用,接着初始化菜单,把菜单放入到void contextMenuEvent(QContextMenuEvent * event);这个接口当中。
初始化菜单
其次创建一个初始化菜单的接口 在此 我们命名为InitPopMenu() 这里的初始化菜单接口名可以进行修改,我们在InitPopMenu()中实现树状节点挂载的Action的初始化以及信号槽的绑定,相应代码如下:
void Ym_DlgXmlDemo::InitPopMenu()
{
menu = new QMenu(this);
// 未用菜单
QAction *pAdd = new QAction(tr("Add"),this);
QAction *pShow = new QAction(tr("Show"),this);
QAction *pDelete = new QAction(tr("Delete"),this);
menu->addAction(pAdd);
menu->addAction(pShow);
menu->addAction(pDelete);
// 绑定右击事件的信号槽 点击动作应当为 SIGAL(triggered())
}
把菜单放入到contextMenuEvent(QContextMenuEvent *event)
void Ym_DlgXmlDemo::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *pPopMenu = NULL;
pPopMenu = menu;
pPopMenu->exec(QCursor::pos());
event->accept();
}
完成绑定,树状列表右击效果如下: