ファイル システム内の項目を選択できる がありQFileSystemModel
ます。QListView
アイテムを選択すると、ファイルパスを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')
変数を渡す方法が間違っていると思いますか?
手伝ってくれませんか?