QFileDialog getSaveFileName仅过滤特定的驱动器

时间:2015-03-12 18:37:48

标签: python qt pyqt qfiledialog

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

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

但是文件必须保存在任何文件夹中的“P:\”,但必须是“P:”。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您需要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()