Python 如何使QFileDialog.AnyFile工作?
根据PyQt5文档,指定Python 如何使QFileDialog.AnyFile工作?,python,pyqt,pyqt5,qfiledialog,Python,Pyqt,Pyqt5,Qfiledialog,根据PyQt5文档,指定QFileDialog.AnyFile应消除指定文件已经存在的要求。但是,这似乎不起作用。我是做错了什么,还是这是一个不再有效的功能?这是我的密码: import os from PyQt5 import QtGui, QtCore from PyQt5.QtWidgets import QApplication, QFileDialog, QWidget class App(QWidget): def __init__(self): sup
QFileDialog.AnyFile
应消除指定文件已经存在的要求。但是,这似乎不起作用。我是做错了什么,还是这是一个不再有效的功能?这是我的密码:
import os
from PyQt5 import QtGui, QtCore
from PyQt5.QtWidgets import QApplication, QFileDialog, QWidget
class App(QWidget):
def __init__(self):
super().__init__()
self.title = "QFileDialog.AnyFile doesn't work."
self.left = 10
self.top = 30
self.width = 320
self.height = 200
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
dlg= QFileDialog()
dlg.setFileMode(QFileDialog.AnyFile)
fname, _= dlg.getOpenFileName(parent=self, directory=os.getcwd(),
caption='Select a file')
self.show()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
你有以下误解:
是一种静态方法,它不使用“dlg”对象,而是创建一个新的QFileDialog,因此设置或修改任何“dlg”属性都不会影响将显示的QFileDialogQFileDialog::getOpenFileName()
- 函数QFileDialog::getOpenFileName()的目的是获取现有文件的名称,如中所示,它设置的文件模式是
,因此修改该行为是矛盾的QFileDialog::ExistingFile
因此,如果要获取文件名,即使该文件不存在,也必须使用静态方法QFileDialog::getSaveFileName(),如中所示: 这是一个方便的静态函数,将返回用户选择的文件名文件不必存在 (强调矿山)
fname,QFileDialog.getSaveFileName(
parent=self,directory=os.getcwd(),caption=“选择文件”
)