QFileDialog getSaveFileName 只过滤特定的驱动器

QFileDialog getSaveFileName filter only specifc drive

我正在使用 pyqt,我刚刚制作了一个 Qfiledialog 来保存我的程序生成的 PDF,如下所示:

QtGui.QFileDialog.getSaveFileName(self, "Save file", "", ".pdf")

但文件必须保存在"P:\",在任何文件夹中,但必须是"P:"。 我该怎么做?

您需要 directoryEnteredfileSelected 信号而不是模态 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()