Найти - Пользователи
Полная версия: вопрос о QFileialog
Начало » GUI » вопрос о QFileialog
1
kzoi_py
Доброго дня всем. В каталоге с программой держу папку в которой профили. Хотелось бы чтоб открывался файловый диалог сразу в папке с профилями. Вот достижения
def w3_OpenDialog(self):
root = "\\profile\\"
dlg = QtGui.QFileDialog()
f = dlg.directory()
f.setPath(f.path()+root)
dlg.setDirectory(f)
gname = dlg.getOpenFileName()
В общем диалог откывается в каталоге проекта, а не в профилях. За ранее спасибо.
dartNNN
Проверь что у тебя находится в f.path() и попробуй f.absolutePath().
kzoi_py
нужный путь оказывается дефолтным до вызова диалога. Но диалог вываливается всё равно в корневом каталоге проекта. Проверял.
truporez
вместо “+” лучше использовать 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
не помогло ((
truporez
А вот у вас вызывается метод directory, а с чего вы взяли что “currently being displayed in the dialog” именно ваша корневая директория? У меня это совершенно не соответствует истине.
kzoi_py
мммм… я создаю дескриптор папки или объект Directory. На основе его я могу выяснить какая папка текущая и…. исходя из метода setPath сменить директорию. Самое интересное что вывод переменной f до смены текущей папки и после такой как полагается. А диалог отображается будто я не менял директории.
dartNNN
А еще можно непосредственно в getOpenFileName() передать нужную директорию

getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)
kzoi_py
мерси )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB