Russian Qt Forum
Ноябрь 23, 2024, 17:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Имя файла содержащее кавычки  (Прочитано 4082 раз)
100 and 80
Гость
« : Декабрь 26, 2014, 13:28 »

Через QFileDialog::getSaveFileName пытаюсь получить адрес файла для записи, по умолчанию устанавливаю имя допустим aaaa"bbbb".txt - отображается нормально, нажимаю сохранить получаю bbbb, только то что в кавычках. Как получить имя файла корректно?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Декабрь 26, 2014, 13:35 »

Код, в котором вы getSaveFileName используйте, в студию Улыбающийся
Записан

Bepec
Гость
« Ответ #2 : Декабрь 26, 2014, 13:37 »

Кавычки как бы запрещены для использования в качестве имени файла ) Радоваться надо, что диалог отбрасывает ненужное и хотя бы сохраняет в bbb Веселый
Записан
100 and 80
Гость
« Ответ #3 : Декабрь 26, 2014, 13:44 »

Как-то так;

Код:
    QString title = titleLabel->text();

    QString defaultName = QDir("texts/").absoluteFilePath(QString("%1.%2").arg(title).arg(formatLabel->text()));

    QString filePath = QFileDialog::getSaveFileName(this, tr("Save File"), defaultName, QString(".%1").arg(formatLabel->text()));

    qDebug() << filePath;

Проверял qDebug-ом title и defaultName выводятся правильно, filePath - нет.

Я могу создать файл с таким именем вручную.
Записан
Bepec
Гость
« Ответ #4 : Декабрь 26, 2014, 13:53 »

Если б ОС написали было бы лучше )
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Декабрь 26, 2014, 13:54 »

Значения titleLabel->text() и formatLabel->text() интересуют Улыбающийся
Записан

100 and 80
Гость
« Ответ #6 : Декабрь 26, 2014, 14:05 »

linux у меня, Qt 5_4_0

Попробовал задать прямо из кода - то же поведение сохранилось - от имени остается только то, что в кавычках;

Код:
    QString title = "aaaa\"bbbb\"";
    QString format = "txt";

    QString defaultName = QDir("texts/").absoluteFilePath(QString("%1.%2").arg(title).arg(format));

    QString filePath = QFileDialog::getSaveFileName(this, tr("Save File"), defaultName, QString(".%1").arg(format));

    qDebug() << filePath;

Наверное проще заменить кавычки будет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 22.