我有一个QFileSystemModel
允许QListView
我在文件系统中选择项目的 inside。
当我选择一个项目时,我想以QMessageBox
.
到目前为止,我有以下代码:
filemodel = new QFileSystemModel(this);
filemodel->setFilter(QDir::NoDotAndDotDot | QDir::Files);
filemodel->setNameFilters(filters);
filemodel->setNameFilterDisables(false);
filemodel->setRootPath(sPath);
//get file path
QString filepath = filemodel->fileName(index);
QMessageBox::information(this, "title", filepath);
ui->listView->setModel(filemodel);
这将创建文件模型。
我收到此错误:
mainwindow.cpp:46: 错误: 没有匹配函数调用'QFileSystemModel::fileName(char* (&)(const char*, int))'
这是解决这个问题的正确方法吗?选择项目时返回文件路径?
编辑@dunc123
在构造函数中:
connect(ui->listView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(selectedFile(QItemSelection one, QItemSelection two)));
选定文件:
void MainWindow::selectedFile(QItemSelection one, QItemSelection two){
QString file_name = filemodel->fileName(ui->listView->selectionModel()->currentIndex());
QMessageBox::information(this, "title", file_name);
}
它构建并运行,但是当我单击文件时,出现以下错误:
Object::connect: No such slot MainWindow::selectedFile(QItemSelection one, QItemSelection two) in ../Images/mainwindow.cpp:26
Object::connect:(接收者名称:'MainWindow')
我假设我传递变量的方式是错误的?
你能帮帮我吗?