我正在尝试使用 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
但是,现在我不确定如何获取用户传递的文件名?如果我打印 dlg.getSaveFileName,它只会弹出另一个保存文件对话框。有人知道如何做到这一点,同时仍然将所有选项传递给我希望受到尊重的 QFileDialog 吗?
不需要创建对象QFileDialog
因为它提供了四种静态方法,可以根据您的需要使用。
1) QFileDialog.getExistingDirectory(...)
2) QFileDialog.getOpenFileName(...)
3) QFileDialog.getOpenFileNames(...)
4) QFileDialog.getSaveFileName(...)
根据你的需要,你需要第四个。您还可以为此函数提供默认文件扩展名的参数。您可以将其用作:
fileName = QtGui.QFileDialog.getSaveFileName(self, 'Dialog Title', '/path/to/default/directory', selectedFilter='*.txt')
if fileName:
print fileName
您可以离开/path/to/default/directory
如果您不知道用户可以将文件保存在哪个目录中,则为空字符串。
现在,当用户在输入文件名(不带文件扩展名)后单击对话框上的“保存”按钮时,此方法将返回文件路径,后跟.txt
扩大。
有关更多信息QFileDialog.getSaveFileName()
可以被找寻到here http://qt-project.org/doc/qt-4.8/qfiledialog.html#getSaveFileName
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)