QModelIndex index=ui.tree_FileLocal->indexAt(pos);
QMenu *pMenu=new QMenu(ui.tree_FileLocal);
if (ui.tree_FileLocal->columnCount()==7)
{
QAction *refresh=pMenu->addAction(tr("刷新(&Y)"));
refresh->setShortcut(Qt::Key_F5);
connect(refresh,SIGNAL(triggered()),this,SLOT(discRefreshLocalFunction()));
pMenu->addSeparator();
QAction *attribute=pMenu->addAction(tr("属性(&Z)"));
connect(attribute,SIGNAL(triggered()),this,SLOT(discInfoLocalFunction()));
}
else
{
if (index==QModelIndex())//空白地方
{
QMenu *checkMenu=new QMenu(ui.tree_FileLocal);
QAction *plain=checkMenu->addAction(tr("平铺(&W)"));
plain->setCheckable(true);
connect(plain,SIGNAL(triggered()),this,SLOT(extendLocalView()));
checkMenu->addSeparator();//分隔线
QAction *icon=checkMenu->addAction(tr("图标(&X)"));
icon->setCheckable(true);
connect(icon,SIGNAL(triggered()),this,SLOT(iconLocalView()));
checkMenu->addSeparator();
QAction *list=checkMenu->addAction(tr("列表(&Y)"));
list->setCheckable(true);
connect(list,SIGNAL(triggered()),this,SLOT(listLocalView()));
checkMenu->addSeparator();
QAction *report=checkMenu->addAction(tr("报表(&Z)"));
report->setCheckable(true);
connect(report,SIGNAL(triggered()),this,SLOT(reportLocalView()));
switch(m_viewLocalFlag)
{
case 0:plain->setChecked(true);break;//勾选
case 1:icon->setChecked(true);break;
case 2:list->setChecked(true);break;
case 3:report->setChecked(true);break;
}
QMenu *newMenu=new QMenu(ui.tree_FileLocal);
QAction *contents=newMenu->addAction(tr("目录(&Z)"));
contents->setCheckable(true);
connect(contents,SIGNAL(triggered()),this,SLOT(createDirLocalFunction()));
QAction *refresh=pMenu->addAction(tr("刷新(&X)"));
refresh->setShortcut(Qt::Key_F5);//添加热键
connect(refresh,SIGNAL(triggered()),this,SLOT(fileRefreshLocalFunction()));
pMenu->addSeparator();
QAction *checks=pMenu->addAction(tr("查看(&Y)"));
checks->setMenu(checkMenu);
pMenu->addSeparator();
if(m_copyFlag)
{
QAction *paste=pMenu->addAction(tr("粘贴(&V)"));
paste->setShortcut(Qt::CTRL+Qt::Key_V);
connect(paste,SIGNAL(triggered()),this,SLOT(pasteFileLocalFunction()));
pMenu->addSeparator();
}
QAction *news=pMenu->addAction(tr("新建(&Z)"));
news->setMenu(newMenu);
}
else//文件
{
QAction *open=pMenu->addAction(tr("打开(&U)"));
open->setShortcut(Qt::Key_F9);
connect(open,SIGNAL(triggered()),this,SLOT(openFileLocalFunction()));
QAction *refresh=pMenu->addAction(tr("刷新(&X)"));
refresh->setShortcut(Qt::Key_F5);
connect(refresh,SIGNAL(triggered()),this,SLOT(fileRefreshLocalFunction()));
pMenu->addSeparator();
QAction *copy=pMenu->addAction(tr("复制(&V)"));
copy->setShortcut(Qt::CTRL+Qt::Key_C);
connect(copy,SIGNAL(triggered()),this,SLOT(copyFileLocalFuntion()));
pMenu->addSeparator();
QAction *alter=pMenu->addAction(tr("改名(&W)"));
alter->setShortcut(Qt::Key_F2);
connect(alter,SIGNAL(triggered()),this,SLOT(renameFileLocalFunction()));
QAction *del=pMenu->addAction(tr("删除(&Y)"));
del->setShortcut(Qt::Key_Delete);
connect(del,SIGNAL(triggered()),this,SLOT(deleteFileLocalFunction()));
pMenu->addSeparator();
QAction *attribute=pMenu->addAction(tr("属性(&Z)"));
connect(attribute,SIGNAL(triggered()),this,SLOT(fileInfoLocalFunction()));
}
}
pMenu->exec(QCursor::pos());//在鼠标位置弹出菜单
qt QTreeWidget右键菜单函数,以备自己翻阅
原创
©著作权归作者所有:来自51CTO博客作者芒橙的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
有趣的CSS - 汉堡菜单按钮
用 css 实现汉堡菜单图标与关闭图标过渡动画交互效果。
css 汉堡图标 动画 ux 交互体验 -
看懂OSSIM的WebUI菜单源码文件
本文详细介绍OSSIM前端WebUI菜单结构和代码注释
数组 OSSIM 汉化 -
PipeCAD右键菜单
PipeCAD 1.0.10版本发布啦!这个版本主要增加设计导航树和三维视图中的右键菜单。还完善了项目管理模块中的一些功能。
PipeCAD 右键菜单 个人版 github -
winform右键菜单
public partial class Form1 : Form { ContextMenuStrip cms; &n
右键菜单 菜单 winform右键 -
WINDOWS右键菜单,折叠菜单
所有文件右键关联注册表修改 在HKEY_CLASSES_ROOT下面有“*”号,
Windows 右键菜单 折叠菜单 右键 notepad++