QFileDialog getSaveFileName фильтр только указанный диск
Я использую pyqt, и я только что создал Qfiledialog, чтобы сохранить PDF, созданный моей программой, например:
QtGui.QFileDialog.getSaveFileName(self, "Save file", "", ".pdf")
Но файл должен быть сохранен в "P:\", в любой папке, но должен быть "P:". Как я могу это сделать?
1 ответ
Решение
Тебе нужно directoryEntered
а также fileSelected
сигналы вместо модальных getSaveFileName
, Некоторый псевдокод:
self.dialog = QtGui.QFileDialog()
self.dialog.directoryEntered.connect(self.checkDir)
self.dialog.fileSelected.connect(self.saveFile)
self.dialog.setAcceptMode(QFileDialog.AcceptSave)
self.dialog.setFileMode(QFileDialog.AnyFile)
self.dialog.setDirectory("P:")
self.dialog.show()
....
def checkDir(self, directory):
if not (directory.startsWith("P:")):
self.dialog.setDirectory("P:")
def saveFile(self, fileName):
directory = QtCore.QFileInfo(fileName).canonicalPath()