В моем приложении мне нужно загрузить много изображений. Я бы действительно использовал опцию, чтобы выбрать последний открытый файл, поэтому я хотел бы знать последний выбранный файл. Документация гласит:
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)"));
Рабочий каталог диалогового окна файла будет установлен в dir. Если dir содержит имя файла, файл будет выбран.
Поэтому я должен сохранить где-то последний открытый путь к файлу, а затем вставить его вместо «/ home». Но это не работает. В диалоговом окне открытия файла имя файла разбивается на несколько последних символов, и файл не выбирается.
Что случилось? Это ошибка?
Мой текущий код:
QString fileName = QFileDialog::getOpenFileName(this, "Select file",
lastUsedFile, "Image Files (*.png *.jpg *.jpg *.bmp);; JPEG(*.jpg *.jpeg);; PNG(*.png);; BMP(*.bmp)");
if (!fileName.isEmpty())
lastUsedFile = fileName;
Я хотел бы добиться, чтобы файл был выбран и прокручен.
Это третий параметр QFileDialog :: getOpenFileName (). И тогда вы должны сохранить его в QSettings.
например:
QString fileName = QFileDialog::getOpenFileName(
this, tr("Open file"),
Settings.value(DEFAULT_DIR).toString(),
tr("Images (*.png *.xpm *.jpg)");
if (!fileName.isEmpty()) {
QDir curDir;
Settings.setValue(DEFAULT_DIR, curDir.absoluteFilePath(fileName));
}
Других решений пока нет …