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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFileDialog::getSaveFileName  (Прочитано 11138 раз)
Steven_Orko
Гость
« : Декабрь 26, 2005, 16:27 »

Как сказано в документации, эта функция использует нативный диалог  ОС для получения имени файла. Но, если файл вводится без разширения (в Windows), то и возвращается этот файл без расширения. Если ли способ автоматом заставить добавлять расширение? Или же ручками необходимо проверять, есть ли оно, и если нету, то добавлять?
Записан
Dendy
Гость
« Ответ #1 : Декабрь 26, 2005, 16:47 »

А якщо у списку більше одного розширення:

Код:
QFileDialog::getSaveFileName( this, tr("Save As"),
  initialFileName,
  "PNG Image (*.png);;JPEG Image (*.jpg)" );


Який повертати? Грустный
Записан
Steven_Orko
Гость
« Ответ #2 : Декабрь 26, 2005, 16:59 »

Вот я и спрашиваю, можно как-то сказать ему, какое расширение добавлять? К тому же, когда сохраняешь, то странно было бы писать в фильтре несколько раширений...
Записан
zlatko
Гость
« Ответ #3 : Декабрь 26, 2005, 17:44 »

Незнаю як це реалізовано в 4 версі,і  а в 3 я перевіряв вручну....типу
Код:

m_strFile = QFileDialog::getSaveFileName( QString::null,m_pCodec->toUnicode("Файл звіту") + "(*.html)");
if ( m_strFile.section( ".", -1, -1 ) != "html" )
    m_strFile+= ".html";
Записан
Steven_Orko
Гость
« Ответ #4 : Декабрь 26, 2005, 19:51 »

Спасибо. Я примерно так и решил проблемму... )))
Записан
burunduk
Гость
« Ответ #5 : Декабрь 29, 2005, 15:54 »

Гм, но тут есть еще одна при использования диалога сохранения.
Если случится что вы вводите имя файла без расширения, подразумевая потом добавление расширения вручную, то при наличии уже на диске файла с введенным именем без расширения получаете диалог - перезаписать ? и наоборот не получаете его когда это нужно.


Цитата: "Steven_Orko"
Спасибо. Я примерно так и решил проблемму... )))
Записан
Steven_Orko
Гость
« Ответ #6 : Декабрь 29, 2005, 16:08 »

Ну, так и получается, что он перезаписывается. Причем у пользователя не спрашивается об этом... Можно конечно, дополнительно выдавать диалог, но он тогда может быть двойным... Есть мысль, переписать исходный код этой функции и использовать уже его, но... я думаю, может в будущем найдется решение получше?
Может уже сть идеи по ее решению?
Записан
Dendy
Гость
« Ответ #7 : Январь 03, 2006, 10:04 »

Не найдётся. И правильно. Етот файл-диалог нужен только для получения имени файла, что тьІ будешь с ним делать никто не знает. ПерезапизьІвать, копировать, дописьІвать, ещё как портить.
Записан
yshurik
Гость
« Ответ #8 : Январь 06, 2006, 15:35 »

В Qt3 проблему решал тем что наследовал QFileDialog для того чтобы при сохранении файла пользователь мог выбрать расширение из указанных в combo box-е (я мог тогда до него достучаться) но тогда диалог переставал быть в виндовсе нативным а ставал Qt-шным, так что палка о двух концах.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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