Qt学习QFlieSystemModel和QTreeView制作简易文件浏览器的困惑
话不多说,先上效果和代码。
目前实现的效果:
![](https://i-blog.csdnimg.cn/blog_migrate/bb5f69574dd3f45902edb41daafcf9b1.gif)
实现核心代码:
#include "mytreeview2.h"
#include "ui_mytreeview2.h"
#include<QProcess>
#include<QMouseEvent>
#include<QDebug>
MyTreeView2::MyTreeView2(QWidget *parent) :
QTreeView(parent),
ui(new Ui::MyTreeView2)
{
ui->setupUi(this);
QString str=QDir::currentPath();
m_Model=new QFileSystemModel(this);
m_Model->setRootPath(str);
ui->treeView->setModel(m_Model);
connect(ui->treeView,&QTreeView::doubleClicked,this,&MyTreeView2::on2_double_clicked);
}
MyTreeView2::~MyTreeView2()
{
delete ui;
}
void MyTreeView2::on2_double_clicked(const QModelIndex &index)
{
if(!m_Model->isDir(index))
{
QProcess::startDetached(m_Model->filePath(index));
}
}
困惑:
在connect中的信号是双击信号,在演示的效果当中实际上我一共使用三种双击方式,分别是鼠标左键、右键和中键,想请问大佬们,有没有办法只让鼠标左键双击有效?(尝试了好多方法了,实在搞不出来了。。。)