kzoi_py
Фев. 14, 2010 10:48:40
Доброго дня всем. В каталоге с программой держу папку в которой профили. Хотелось бы чтоб открывался файловый диалог сразу в папке с профилями. Вот достижения
def w3_OpenDialog(self):
root = "\\profile\\"
dlg = QtGui.QFileDialog()
f = dlg.directory()
f.setPath(f.path()+root)
dlg.setDirectory(f)
gname = dlg.getOpenFileName()
В общем диалог откывается в каталоге проекта, а не в профилях. За ранее спасибо.
dartNNN
Фев. 14, 2010 15:10:37
Проверь что у тебя находится в f.path() и попробуй f.absolutePath().
kzoi_py
Фев. 14, 2010 15:55:00
нужный путь оказывается дефолтным до вызова диалога. Но диалог вываливается всё равно в корневом каталоге проекта. Проверял.
truporez
Фев. 14, 2010 16:40:14
вместо “+” лучше использовать 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()
kzoi_py
Фев. 14, 2010 17:07:05
не помогло ((
truporez
Фев. 14, 2010 18:28:29
А вот у вас вызывается метод directory, а с чего вы взяли что “currently being displayed in the dialog” именно ваша корневая директория? У меня это совершенно не соответствует истине.
kzoi_py
Фев. 14, 2010 18:41:15
мммм… я создаю дескриптор папки или объект Directory. На основе его я могу выяснить какая папка текущая и…. исходя из метода setPath сменить директорию. Самое интересное что вывод переменной f до смены текущей папки и после такой как полагается. А диалог отображается будто я не менял директории.
dartNNN
Фев. 15, 2010 12:31:15
А еще можно непосредственно в getOpenFileName() передать нужную директорию
getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)
kzoi_py
Фев. 16, 2010 08:43:22
мерси )