您的位置:首页 > 编程语言 > Qt开发

QT中在QTreeWidget中实现右键菜单功能

2020-02-16 19:44 691 查看

在创建好自己的QTreeWidget控件之后,添加 customContextMenuRequested 槽函数

槽函数内容如下

void ftpWindow::on_fileInfo_tw_customContextMenuRequested(const QPoint &pos)
{
QTreeWidgetItem * curItem = ui->fileInfo_tw->itemAt(pos);
if(curItem == NULL)
{
popMenu = new QMenu(this);
uploadFilePath = popMenu->addAction("设当前目录为下装配置文件目录");
connect(uploadFilePath,SIGNAL(triggered()),this,SLOT(on_uploadFilePathAction()));
popMenu->exec(QCursor::pos());
}
else
{
popMenu = new QMenu(this);
deleteFile = popMenu->addAction("删除");
downloadFile = popMenu->addAction("下载");

connect(deleteFile,SIGNAL(triggered()),this,SLOT(on_deleteAction()));
connect(downloadFile,SIGNAL(triggered()),this,SLOT(on_downloadAction()));

popMenu->exec(QCursor::pos());
}
}

头文件中包含了

QMenu * popMenu;
QAction * deleteFile;
QAction * downloadFile;
QAction * uploadFilePath;

pos是为了确定鼠标的位置,点击在空白处则为 NULL ,否则就是被选中的 item。
菜单弹出之后再点击菜单下的功能,则会触发 triggered() 信号,所以我们需要用connect接收这个信号然后调用自己的槽函数
没什么难点,就这样。

效果如图

  • 点赞
  • 收藏
  • 分享
  • 文章举报
yx019 发布了10 篇原创文章 · 获赞 1 · 访问量 550 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐