QFileDialog проблема со специальным символом

#include <QApplication>
#include <QFileDialog>
#include <QDebug>

int main(int argc, char** argv){
QApplication app(argc, argv);

QFileDialog dlg;
dlg.setAcceptMode(QFileDialog::AcceptSave);
if (dlg.exec()) {
qDebug() << dlg.selectedFiles();
}
return app.exec();
}

С помощью этого кода мы можем создать QFileDialog, Проблема в том, что он не распознает некоторые специальные символы, которые можно ввести в его записи «Имя файла»:

1) Для """ кнопка «Сохранить» отключена, поэтому я не могу сохранить файл с именем """

2) Для "aaa это печатает aaa

3) Для \"aaa это снова печатает aaa

4) Для aaaa"eee это печатает eee

5) Для \" Кнопка сохранения включена, но она ничего не делает при нажатии.

Я использую Linux. Кто-нибудь знает решение этой проблемы?

0

Решение

Причиной такого поведения может быть то, что " символ, используемый в качестве разделителя имен файлов при редактировании строки QFileDialog. То есть Вы можете написать что-то вроде "file1" "file2" открыть несколько файлов. Для лучшего понимания того, что происходит в этом диалоге, вы можете взглянуть на источники Qt, особенно в QFileDialogPrivate::typedFiles() функция (qfiledialog.cpp), где ваш вход делится на ":

QStringList tokens = editText.split(QLatin1Char('\"'));
2

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

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

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