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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFileDialog::getSaveFileName  (Прочитано 6237 раз)
Николай Кузнецов
Гость
« : Ноябрь 24, 2011, 18:54 »

Стоит такая задача. Нужно модифицировать стандартное окно "Сохранить файл".
Собственно вызвать это окно просто, например так:
Код:
void MainWindow::on_actionSave_triggered()
{
    QString stSave = QFileDialog::getSaveFileName(this, tr("Save File"),
                                                 "/home/jana/untitled.png",
                                                 tr("Images (*.png *.xpm *.jpg)"));
}

Но как добраться до самого диалога для его модификации?
В приложении картинка, примерно отражающее то что должно быть в итоге.
Записан
madRoger
Гость
« Ответ #1 : Ноябрь 24, 2011, 19:11 »

Либо унаследоваться и реализовать свой диалог либо модифицировать существующий: диалог имеет основной лэйаут, к которому можно обратиться. (см.QWidget::layout()). Далее в лэйаут добавить необходимые виджеты.
« Последнее редактирование: Ноябрь 24, 2011, 19:18 от madRoger » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Ноябрь 24, 2011, 23:22 »

Цитата: assistant
On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog.
Так что, если требуется
добраться до самого диалога для его модификации?
то забудь про статические методы.
Записан

Qt 5.11/4.8.7 (X11/Win)
Николай Кузнецов
Гость
« Ответ #3 : Ноябрь 25, 2011, 01:37 »

Цитата: assistant
On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog.
Так что, если требуется
добраться до самого диалога для его модификации?
то забудь про статические методы.

Несовсем понял, но звучит устрашающе(
Записан
andrew.k
Гость
« Ответ #4 : Ноябрь 25, 2011, 02:11 »

значит, что ты не сможешь в него вклиниться средствами Qt, да и средствами WinAPI наверное едва ли (не силен в WinAPI).

А вообще мое имхо, это диалог-урод. Зачем такое плодить?

Никогда не мог понять, что у людей за манера каверкать стандартные решения.
Чтобы пользователи потом удивлялись, почему ОНО работает не так как всегда и у всех, а "умнее, удобнее или красивее".
Записан
Николай Кузнецов
Гость
« Ответ #5 : Ноябрь 25, 2011, 02:25 »

значит, что ты не сможешь в него вклиниться средствами Qt, да и средствами WinAPI наверное едва ли (не силен в WinAPI).

А вообще мое имхо, это диалог-урод. Зачем такое плодить?

Никогда не мог понять, что у людей за манера каверкать стандартные решения.
Чтобы пользователи потом удивлялись, почему ОНО работает не так как всегда и у всех, а "умнее, удобнее или красивее".

Хм. Вы удивитесь, но в том и цель - породить диалог урод! И такой чтобы он желательно заменял стандартный диалог "Сохранить файл" во всех программах в системе. Т.е. в итоге должна получиться утилита, при включении которой диалог заменяется на кастомный.
Ведь есть же такая тулза TeraCopy, она заменяет стандартный функционал системы для работы с буф.обмена на свой собственный, улучшенный. А диалог который я хочу сделать должен решать такую задачу:
Каждому приходиться часто и много сохранять файлов из интернета (из браузера, менеджера закачек, торрент клиента и .т.п), но так как файлы в интернете не всегда имеют понятные\удобные имена, в папках загрузок черт ногу сломит. А я хочу сделать так чтобы при сохранении файла к нему можно было бы добавить краткое текстовое описание, прямо в диалоге сохранения, которое потом сохраниться рядом с файлом в отдельный текстовый файл Description например.
Записан
andrew.k
Гость
« Ответ #6 : Ноябрь 25, 2011, 02:36 »

почему это описание не внести в имя файла?
Записан
Николай Кузнецов
Гость
« Ответ #7 : Ноябрь 25, 2011, 02:47 »

почему это описание не внести в имя файла?
Шокированный В имя файла? Собственно ограничения на имя файла не позволяют это сделать.
Записан
andrew.k
Гость
« Ответ #8 : Ноябрь 25, 2011, 03:02 »

почему это описание не внести в имя файла?
Шокированный В имя файла? Собственно ограничения на имя файла не позволяют это сделать.
Так зачем туда поэму писать? Твой диалог не спасет от помойки.
Я когда-то давно, тоже хотел к каждой программе и файлу описание написать. Тотал коммандер позволяет это делать.
И удобно отображать комментарии к файлам.
В итоге эта идея довольно быстро загнулась. За не надобностью, за ленью. И еще почему, что любого хотябы более менее осмысленного имени файла было достаточно, чтобы вспомнить что за файл.
Тот у кого помойка из файлов наверняка пользуется файловым менеджером и наверняка он тоже поддерживает комментарии.

А по сабжу. При чем тут Qt вообще. Тут надо в winAPI лезть и полностью свой диалог писать и перехватывать стандартный вызов.
Записан
Николай Кузнецов
Гость
« Ответ #9 : Ноябрь 25, 2011, 03:10 »

почему это описание не внести в имя файла?
Шокированный В имя файла? Собственно ограничения на имя файла не позволяют это сделать.
Так зачем туда поэму писать? Твой диалог не спасет от помойки.
Я когда-то давно, тоже хотел к каждой программе и файлу описание написать. Тотал коммандер позволяет это делать.
И удобно отображать комментарии к файлам.
В итоге эта идея довольно быстро загнулась. За не надобностью, за ленью. И еще почему, что любого хотябы более менее осмысленного имени файла было достаточно, чтобы вспомнить что за файл.
Тот у кого помойка из файлов наверняка пользуется файловым менеджером и наверняка он тоже поддерживает комментарии.

А по сабжу. При чем тут Qt вообще. Тут надо в winAPI лезть и полностью свой диалог писать и перехватывать стандартный вызов.

Может Qt и не причем. Просто хотел реалиазовать на нем пример работающей проги, для демонстрации людям которые возможно смогли бы сделать это наиболее правильно оптимально (на winapi например).
А вот насчет того необходимо это или нет, я твердо убежден что ДА, необходимо. Кучи файлов есть у всех, а инструментов систематизации поди поищи.
Записан
andrew.k
Гость
« Ответ #10 : Ноябрь 25, 2011, 16:04 »

почему это описание не внести в имя файла?
Шокированный В имя файла? Собственно ограничения на имя файла не позволяют это сделать.
Так зачем туда поэму писать? Твой диалог не спасет от помойки.
Я когда-то давно, тоже хотел к каждой программе и файлу описание написать. Тотал коммандер позволяет это делать.
И удобно отображать комментарии к файлам.
В итоге эта идея довольно быстро загнулась. За не надобностью, за ленью. И еще почему, что любого хотябы более менее осмысленного имени файла было достаточно, чтобы вспомнить что за файл.
Тот у кого помойка из файлов наверняка пользуется файловым менеджером и наверняка он тоже поддерживает комментарии.

А по сабжу. При чем тут Qt вообще. Тут надо в winAPI лезть и полностью свой диалог писать и перехватывать стандартный вызов.

Может Qt и не причем. Просто хотел реалиазовать на нем пример работающей проги, для демонстрации людям которые возможно смогли бы сделать это наиболее правильно оптимально (на winapi например).
А вот насчет того необходимо это или нет, я твердо убежден что ДА, необходимо. Кучи файлов есть у всех, а инструментов систематизации поди поищи.
Интересный подход)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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