[转] QT 在TreeView中增加右键菜单功能
来源:互联网 发布:labview 二维数组拆分 编辑:程序博客网 时间:2024/05/18 04:59
转自: http://blog.csdn.net/liukang325/article/details/22734735
实现代码如下:
- //头文件中申明;
- QMenu *m_grpMenu;
- QMenu *m_memberMenu;
- QMenu *m_addAreaMenu;
- QAction *m_grpAddOneMember;
- QAction *m_grpDeleteGrp;
- QAction *m_grpAddOneGrp;
- QAction *m_memberDelete;
- QAction *m_memberMove;
- QAction *m_memberSyncTime;
- QAction *m_addAreaAction;
- QAction *m_grpFlush;
- QAction *m_addDev;
- void createItemMenu();
- void createConnection();
- //构造函数调用:
- createItemMenu();
- createConnection();
- void frmMain::createItemMenu()
- {
- m_grpMenu = new QMenu(this);
- m_memberMenu = new QMenu(this);
- m_addAreaMenu = new QMenu(this);
- connect(m_grpMenu,SIGNAL(triggered(QAction *)),
- this,SLOT(onGrpMenuTriggered(QAction *)));
- connect(m_memberMenu,SIGNAL(triggered(QAction *)),
- this,SLOT(onMemberMenuTriggered(QAction *)));
- connect(m_addAreaMenu,SIGNAL(triggered(QAction *)),
- this,SLOT(onAddAreaMenuTriggered(QAction *)));
- m_grpAddOneMember = new QAction(tr("增加子区域"),this);
- m_grpAddOneMember->setIcon(QIcon(":/image/add.png"));;
- m_grpDeleteGrp = new QAction(tr("删除区域"),this);
- m_grpDeleteGrp->setIcon(QIcon(":/image/delete.png"));;
- m_grpAddOneGrp = new QAction(tr("增加设备"),this);
- m_grpAddOneGrp->setIcon(QIcon(":/image/add.png"));;
- m_memberDelete = new QAction(tr("删除设备"),this);
- m_memberDelete->setIcon(QIcon(":/image/delete.png"));;
- m_memberMove = new QAction(tr("移动设备"),this);
- m_memberMove->setIcon(QIcon(":/image/next.png"));;
- m_memberSyncTime = new QAction(tr("同步时间"),this);
- m_memberSyncTime->setIcon(QIcon(":/image/move.png"));;
- m_addAreaAction = new QAction(tr("增加区域"),this);
- m_addAreaAction->setIcon(QIcon(":/image/add.png"));;
- m_addDev = new QAction(tr("增加设备"),this);
- m_addDev->setIcon(QIcon(":/image/add.png"));
- m_grpFlush = new QAction(tr("刷新列表"),this);
- m_grpFlush->setIcon(QIcon(":/image/update.png"));;
- }
- void frmMain::createConnection()
- {
- connect(ui->treeView,SIGNAL(customContextMenuRequested(const QPoint&)),
- this,SLOT(onCustomContextMenuRequested(const QPoint&)));
- }
- void frmMain::onCustomContextMenuRequested(const QPoint &pos)
- {
- QModelIndex idx = ui->treeView->indexAt(pos);
- QPoint tmpPos;
- tmpPos.setX(pos.x());
- tmpPos.setY(pos.y() + 25);
- QString tmpFilePath = model->filePath(idx);
- // if (!idx.isValid())
- if(tmpFilePath.count() == 0)
- {
- currentFilePath.clear();
- currentFilePath.append("./");
- if (m_addAreaMenu->isEmpty())
- {
- //增加区域
- m_addAreaMenu->addAction(m_addAreaAction);
- m_addAreaMenu->addAction(m_addDev);
- m_addAreaMenu->addAction(m_grpFlush);
- }
- m_addAreaMenu->popup(ui->treeView->mapToGlobal(tmpPos));
- }
- else if(QString(tmpFilePath.at(tmpFilePath.count()-1)) == "】")
- {
- if (m_grpMenu->isEmpty())
- {
- //增加子区域
- m_grpMenu->addAction(m_grpAddOneMember);
- //删除区域
- m_grpMenu->addAction(m_grpDeleteGrp);
- m_grpMenu->addAction(m_grpAddOneGrp);
- }
- m_grpMenu->popup(ui->treeView->mapToGlobal(tmpPos));
- }
- else
- {
- if (m_memberMenu->isEmpty())
- {
- //删除设备
- m_memberMenu->addAction(m_memberDelete);
- //移动设备
- m_memberMenu->addAction(m_memberMove);
- //同步时间
- m_memberMenu->addAction(m_memberSyncTime);
- }
- m_memberMenu->popup(ui->treeView->mapToGlobal(tmpPos));
- }
- }
- void frmMain::onGrpMenuTriggered(QAction *action)
- {
- if (action == m_grpAddOneMember)
- {//增加子区域
- }
- else if (action == m_grpDeleteGrp)
- {//删除区域
- }
- else if(action == m_grpAddOneGrp)
- {
- //在区域下增加设备
- }
- }
- void frmMain::onMemberMenuTriggered(QAction *action)
- {
- if (action == m_memberDelete)
- {//删除设备
- }
- else if(action == m_memberMove)
- {//移动设备
- }
- else if(action == m_memberSyncTime)
- {//同步时间
- }
- }
- void frmMain::onAddAreaMenuTriggered(QAction *action)
- {
- if (action == m_addAreaAction)
- {//增加区域
- }
- if(action == m_addDev)
- {//增加设备
- }
- if(action == m_grpFlush)
- {//增加设备
- }
- }
0 0
- [转] QT 在TreeView中增加右键菜单功能
- 在TreeView中增加右键菜单功能
- [转] 在TreeWidget中增加右键菜单功能
- Qt中TreeView的右键菜单实现
- 如何在右键中增加菜单
- 给XP的右键菜单增加“在命令行中打开这里……”功能
- 在Win7右键菜单中增加"移动到"和"复制到"的功能,提高工作效率
- 在TreeWidget中增加右键菜单功能 以及TreeWidget的基本用法
- qt右键菜单及右键菜单功能
- 在QT中添加右键菜单
- 在QT中添加右键菜单
- 在QT中添加右键菜单 .
- Qt 学习(6)在QT中添加右键菜单
- 在 Windows 的右键菜单中增加选项
- 在右键菜单中增加新建条目的方法
- 在(CListView)列表视图中增加右键菜单
- 在explorer中增加右键菜单打开命令行
- 在资源管理器中增加beyond compare 3 的右键菜单
- too many input arguments 问题解决 matlab
- AUC(Area Under roc Curve )计算及其与ROC的关系
- SharePoint 2013 列表多表联合查询
- [数据库]数据库存储层级结构数据
- 将 Shiro 作为应用的权限基础 四:shiro的配置说明
- [转] QT 在TreeView中增加右键菜单功能
- ADF调用window打印
- 第十七篇:实例分析(3)--初探WDDM驱动学习笔记(十)
- Activity生命周期 与 重建
- 数据存储之sqlite 浅析
- 尚客:MYSQL安全之删除历史操作文件
- spring通过annotation注解注册MBean到JMX实现监控java运行状态
- (经典)Hibernate的一对多关系映射(三)
- Struts2自定义拦截器实例—登陆权限验证+验证框架