Russian Qt Forum

Qt => Общие вопросы => Тема начата: Steven_Orko от Декабрь 26, 2005, 16:27



Название: QFileDialog::getSaveFileName
Отправлено: Steven_Orko от Декабрь 26, 2005, 16:27
Как сказано в документации, эта функция использует нативный диалог  ОС для получения имени файла. Но, если файл вводится без разширения (в Windows), то и возвращается этот файл без расширения. Если ли способ автоматом заставить добавлять расширение? Или же ручками необходимо проверять, есть ли оно, и если нету, то добавлять?


Название: QFileDialog::getSaveFileName
Отправлено: Dendy от Декабрь 26, 2005, 16:47
А якщо у списку більше одного розширення:

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


Який повертати? :(


Название: QFileDialog::getSaveFileName
Отправлено: Steven_Orko от Декабрь 26, 2005, 16:59
Вот я и спрашиваю, можно как-то сказать ему, какое расширение добавлять? К тому же, когда сохраняешь, то странно было бы писать в фильтре несколько раширений...


Название: QFileDialog::getSaveFileName
Отправлено: zlatko от Декабрь 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";


Название: QFileDialog::getSaveFileName
Отправлено: Steven_Orko от Декабрь 26, 2005, 19:51
Спасибо. Я примерно так и решил проблемму... )))


Название: QFileDialog::getSaveFileName
Отправлено: burunduk от Декабрь 29, 2005, 15:54
Гм, но тут есть еще одна при использования диалога сохранения.
Если случится что вы вводите имя файла без расширения, подразумевая потом добавление расширения вручную, то при наличии уже на диске файла с введенным именем без расширения получаете диалог - перезаписать ? и наоборот не получаете его когда это нужно.


Цитата: "Steven_Orko"
Спасибо. Я примерно так и решил проблемму... )))


Название: QFileDialog::getSaveFileName
Отправлено: Steven_Orko от Декабрь 29, 2005, 16:08
Ну, так и получается, что он перезаписывается. Причем у пользователя не спрашивается об этом... Можно конечно, дополнительно выдавать диалог, но он тогда может быть двойным... Есть мысль, переписать исходный код этой функции и использовать уже его, но... я думаю, может в будущем найдется решение получше?
Может уже сть идеи по ее решению?


Название: QFileDialog::getSaveFileName
Отправлено: Dendy от Январь 03, 2006, 10:04
Не найдётся. И правильно. Етот файл-диалог нужен только для получения имени файла, что тьІ будешь с ним делать никто не знает. ПерезапизьІвать, копировать, дописьІвать, ещё как портить.


Название: QFileDialog::getSaveFileName
Отправлено: yshurik от Январь 06, 2006, 15:35
В Qt3 проблему решал тем что наследовал QFileDialog для того чтобы при сохранении файла пользователь мог выбрать расширение из указанных в combo box-е (я мог тогда до него достучаться) но тогда диалог переставал быть в виндовсе нативным а ставал Qt-шным, так что палка о двух концах.