Форум сайта python.su
Доброго дня всем. В каталоге с программой держу папку в которой профили. Хотелось бы чтоб открывался файловый диалог сразу в папке с профилями. Вот достижения
def w3_OpenDialog(self):
root = "\\profile\\"
dlg = QtGui.QFileDialog()
f = dlg.directory()
f.setPath(f.path()+root)
dlg.setDirectory(f)
gname = dlg.getOpenFileName()
Отредактировано (Фев. 14, 2010 10:49:39)
Офлайн
Проверь что у тебя находится в f.path() и попробуй f.absolutePath().
Офлайн
нужный путь оказывается дефолтным до вызова диалога. Но диалог вываливается всё равно в корневом каталоге проекта. Проверял.
Офлайн
вместо “+” лучше использовать os.path.join
попробуйте вот так:
def w3_OpenDialog(self):
root = "profile"
dlg = QtGui.QFileDialog()
f = dlg.directory()
f.setPath( os.path.join(f.path(), root) )
dlg.setDirectory(f)
gname = dlg.getOpenFileName()
Офлайн
не помогло ((
Офлайн
А вот у вас вызывается метод directory, а с чего вы взяли что “currently being displayed in the dialog” именно ваша корневая директория? У меня это совершенно не соответствует истине.
Офлайн
мммм… я создаю дескриптор папки или объект Directory. На основе его я могу выяснить какая папка текущая и…. исходя из метода setPath сменить директорию. Самое интересное что вывод переменной f до смены текущей папки и после такой как полагается. А диалог отображается будто я не менял директории.
Офлайн
А еще можно непосредственно в getOpenFileName() передать нужную директорию
getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)
Офлайн
мерси )
Офлайн