У меня есть небольшое приложение, которое требует путь к конкретному файлу, который будет предоставлен во время выполнения пользователем. Все, что мне нужно, это путь. Я представляю, что это какая-то форма файловый менеджер в котором пользователь может пройти через дерево каталогов.
Есть ли способ сделать это в Qt, или я должен вызвать собственную реализацию ОС (если это возможно). Если нет в Qt, как я могу использовать реализацию локальной ОС?
Это то, что QFileDialog пытается достичь, поэтому я бы предложил использовать это, если это приложение на основе виджетов. Все, что вам нужно будет написать примерно так:
fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
Это вызовет диалог для выбора, который пользователь может использовать для навигации.
Если вам случится использовать QML, вы можете попробовать Компонент FileDialog. Затем вы бы написали что-то вроде этого:
import QtQuick 2.2
import QtQuick.Dialogs 1.0
FileDialog {
id: fileDialog
title: "Please choose a file"onAccepted: {
console.log("You chose: " + fileDialog.fileUrls)
Qt.quit()
}
onRejected: {
console.log("Canceled")
Qt.quit()
}
Component.onCompleted: visible = true
}