getOpenFileName — предварительный выбор последнего открытого не работает

В моем приложении мне нужно загрузить много изображений. Я бы действительно использовал опцию, чтобы выбрать последний открытый файл, поэтому я хотел бы знать последний выбранный файл. Документация гласит:

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;

Я хотел бы добиться, чтобы файл был выбран и прокручен.

2

Решение

Это третий параметр 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));
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]