我正试图使用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,我想得到尊重?
dlg.selectedFiles()
返回包含所选文件名的unicode字符串列表。不需要创建
QFileDialog
的对象,因为它提供了四个静态方法,可以根据需要使用。根据你的需要,你需要第四个。也可以为此函数提供默认文件扩展名的参数。您可以将其用作:
如果不知道用户可以在哪个目录中保存文件,可以将
/path/to/default/directory
保留为空字符串。现在,当用户在输入文件名(不带文件扩展名)后单击对话框上的“保存”按钮时,此方法将返回文件路径,后跟
.txt
扩展名。有关
QFileDialog.getSaveFileName()
的更多信息,请参见here相关问题 更多 >
编程相关推荐