use*_*430 10 python pyqt exec pyqt4 qfiledialog
我正在尝试使用QFileDialog来提示用户提供文件名和位置以保存文本文件.我玩了QtGui.QFileDialog.getSaveFileName,但我有兴趣使用一些选项,比如设置默认后缀,并启用保存文件对话框的详细信息视图,根据我的说法,这不是可以这样做,仅使用getSaveFileName.每当我设置它们时,getSaveFileName对话框就会忽略它们.
所以,我最终得到了这样的东西:
dlg=QtGui.QFileDialog( self )
dlg.setWindowTitle( 'Print Things' )
dlg.setViewMode( QtGui.QFileDialog.Detail )
dlg.setNameFilters( [self.tr('Text Files (*.txt)'), self.tr('All Files (*)')] )
dlg.setDefaultSuffix( '.txt' )
if dlg.exec_() :
print dlg
Run Code Online (Sandbox Code Playgroud)
但是,现在我不确定如何获取用户传递的文件的名称?如果我打印dlg.getSaveFileName,它只会弹出另一个保存文件对话框.任何人都知道如何做到这一点,同时仍然将所有选项传递给我想要尊重的QFileDialog?
qur*_*ban 21
不需要创建对象,QFileDialog因为它提供了四种静态方法,可以根据您的需要使用.
1) QFileDialog.getExistingDirectory(...)
2) QFileDialog.getOpenFileName(...)
3) QFileDialog.getOpenFileNames(...)
4) QFileDialog.getSaveFileName(...)
Run Code Online (Sandbox Code Playgroud)
根据您的需要,您需要第四个.您还可以为此函数提供默认文件扩展名的参数.您可以将其用作:
fileName = QtGui.QFileDialog.getSaveFileName(self, 'Dialog Title', '/path/to/default/directory', selectedFilter='*.txt')
if fileName:
print fileName
Run Code Online (Sandbox Code Playgroud)
/path/to/default/directory如果您不知道用户可以在哪个目录中保存文件,则可以将空字符串保留 为空.
现在,当用户在放入文件名(没有文件扩展名)后单击对话框上的保存按钮时,此方法将返回文件路径,后跟.txt扩展名.
更多相关信息QFileDialog.getSaveFileName(),可以发现这里