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()
Другие вопросы по тегам