我遇到了一个问题,当我选择不保存文件并单击系统窗口中的“取消”时,程序将崩溃。这是我收到的错误:
Traceback (most recent call last):
File "BasicEmail.py", line 166, in save_content
with open(file_name[0], 'w') as f:
FileNotFoundError: [Errno 2] No such file or directory: ''
这是我正在使用的代码:
def save_content(self):
file_name = QtWidgets.QFileDialog.getSaveFileName(self,'Save File',os.getenv('HOME'))
if file_name:
with open(file_name[0], 'w') as f:
my_text = self.content.toPlainText()
f.write(my_text)
提前谢谢你。我知道我一定错过了什么。
答案 0 :(得分:2)
if file_name:
语句将始终为True
,因为getSaveFileName()
函数始终返回一个元组,其结构如下:(filename, filters)
,最好得到名称并验证该字符串不为空。
def save_content(self):
file_name, _ = QtWidgets.QFileDialog.getSaveFileName(self, 'Save File', os.getenv('HOME'))
if file_name != "":
with open(file_name, 'w') as f:
my_text = self.content.toPlainText()
f.write(my_text)
Plus:您可以使用QtCore.QDir.homePath()
代替os.getenv('HOME')