关于QFileSystemModel获取文件路径疑问
dirInfo继承QDialog类本段程序想实现在QTableView中双击文件名字,获取文件路径的功能,但是出错了:
bool dirInfo::eventFilter(QObject *object, QEvent *event)
{
if(event->type() == QEvent::MouseButtonDblClick)
{
QModelIndex currentIndex = ui->dirTableView->currentIndex();//dirTableView是QTableView类
if(!QFileSystemModel().isDir(currentIndex))
{
qDebug() << QFileSystemModel().filePath(currentIndex);//出错的地方
return true;
}
}
return QObject::eventFilter(object, event);
}
代码如上,错误信息如下:ASSERT: "index.model() == q" in file dialogs/qfilesystemmodel.cpp, line 1301
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
如果改为qDebug() << QFileSystemModel().fileName(currentIndex);则没问题,但我想获取用户点击视图框架下的文件名所在的路径而不是名字,但是老是报错。求解。。。 --------------------编程问答-------------------- 判断语句搞反了吧。
--------------------编程问答--------------------
if(QFileSystemModel().isDir(currentIndex))
{
qDebug() << QFileSystemModel().filePath(currentIndex);//出错的地方
return true;
}
没错,我是说打开的如果是文件的话就获取该文件的路径,这个不是问题的根本,不过还是谢谢你 --------------------编程问答-------------------- 解决了,其实是因为QFileSystemModel()是一个暂时变量,不能用于传输 --------------------编程问答--------------------
那么该如何获得路径呢 --------------------编程问答-------------------- 建议使用信号和槽,更方便一些:
connect(treeView,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(getTreeViewSelectedFileName(QModelIndex))) ;
补充:移动开发 , Qt