Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Получение полного пути несуществующего файла с помощью getOpenFileName

Автор: XXL 26.11.2009, 17:42

Всем доброго вечера!)
Подскажите, пожалуйста, как получить полное имя несуществующего файла с помощью функции getOpenFileName? QFileDialog::AnyFile помогает для getSaveFileName, но не для getOpenFileName...Можно это вообще сделать?
Большое спасибо!)

Автор: niXman 26.11.2009, 17:59

Чтоб получить имя файла при помощи getOpenFileName, нужно выбрать его. А если его не существует, то и выбирать нечего. Очевидно.

Автор: Litkevich Yuriy 26.11.2009, 18:51

XXL, тебе нужно, чтобы пользователь указывал путь к нему?

Автор: grio 26.11.2009, 19:07

Цитата(XXL @ 26.11.2009, 17:42) *
Всем доброго вечера!)
Подскажите, пожалуйста, как получить полное имя несуществующего файла с помощью функции getOpenFileName? QFileDialog::AnyFile помогает для getSaveFileName, но не для getOpenFileName...Можно это вообще сделать?
Большое спасибо!)


очевидно, сначала надо его создать, потом получить имя через getOpenFileName, а потом с чистой совестью удалить :)

а если серьезно, то почему именно getOpenFileName?
что ты собираешься сделать, опиши задачу подробнее.

Автор: XXL 26.11.2009, 22:10

Мне нужно задавать в обычной текстовой строке пути к каким-либо произвольным файлам (как существующим, так и еще не существующим, которые далее в программе будут при необходимости созданы). Чтобы пользователю не приходилось вводить этот путь полностью вручную (для автоматизации действий), необходимо открывать диалоговое окно для выбора файлов QFileDialog::getOpenFileName(...). Если выбирать существующий файл, все ОК-функция возвращает полный путь, а если набрать в строке имени файла в данном диалоге имя несуществующего файла - получаю соответствующее сообщение и пустую строку. Можно ли как-то отключить это уведомление и получить фиктивный путь? Просто в функции getSaveFileName в аналогичной ситуации можно вернуть фиктивный путь, по которому требуется сохранить файл, и уже при сохранении реально его создать...

Автор: Litkevich Yuriy 26.11.2009, 22:12

XXL, а что тебе мешает использовать именно диалог сохранения?

Автор: XXL 26.11.2009, 22:21

То есть просто использовать немного другую функцию...В самом деле, конечному пользователю какая разница,он в код не полезет!))))))Спасибо тебе большое!А то я бы и дальше насиловала getOpenFileName(...)!

Автор: grio 27.11.2009, 11:18

Цитата(XXL @ 26.11.2009, 22:21) *
То есть просто использовать немного другую функцию...В самом деле, конечному пользователю какая разница,он в код не полезет!))))))Спасибо тебе большое!А то я бы и дальше насиловала getOpenFileName(...)!


а зачем тебе вообще нужен диалог?
используй просто QFile или, если надо еще QDir:

QFile myfile("c:\Text\readme.txt");


Автор: niXman 27.11.2009, 12:41

Наверное в содеянном есть некий тайный смысл.

Автор: Litkevich Yuriy 27.11.2009, 14:30

Цитата(grio @ 27.11.2009, 14:18) *
а зачем тебе вообще нужен диалог?
Она же написала, чтобы человек (пользователь) мог простым способом указать путь где должен размещаться файл

Автор: niXman 27.11.2009, 16:11

Цитата(Litkevich Yuriy @ 27.11.2009, 14:30) *
указать путь где должен размещаться файл

так для этого же есть getSaveFileName

Автор: XXL 27.11.2009, 17:16

Цитата(niXman @ 27.11.2009, 16:11) *
Цитата(Litkevich Yuriy @ 27.11.2009, 14:30) *
указать путь где должен размещаться файл

так для этого же есть getSaveFileName

Дело в том, что мне нужен диалог открытия документа (предпочтительно) с соответстующими параметами (названиями кнопок и т .д.). Поэтому в случае невозможности использования сстандартного диалогового окна сохранения придется создать свой QFileDialog c нужными параметрами (viewMode, labelText и т.д.)

Такое задание)

Автор: niXman 27.11.2009, 18:34

Понятно. Значит свой :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)