QFileDialog在取消时崩溃

时间:2019-06-04 20:07:20

标签: python pyqt qfiledialog

关闭QFileDialog.getSaveFileName时出现问题。如果我选择取消而不继续保存文件,则程序将崩溃。

我知道该语句将始终为True,因为getSaveFileName()函数始终返回一个元组,我应该能够使用If函数来解决此问题,但是我对编程非常陌生,这让我很困惑。

任何帮助将不胜感激。

# Print List
CoOrdinates = ['CL', RoundedSOL_E_1, RoundedSOL_N_1, RoundedEOL_E_1, RoundedEOL_N_1]
Headers = ['Line Name', 'SOL_E', 'SOL_N', 'EOL_E', 'EOL_N']
print(Headers)
print(CoOrdinates)
save = QFileDialog.getSaveFileName(None, 'Save As', 'Line Plan.csv')

with open(save[0], 'a', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(Headers)
    writer.writerow(CoOrdinates)

1 个答案:

答案 0 :(得分:1)

当您选择取消返回文件名的参数时,它是一个空字符串,因此您无法打开文件,因此会引发错误,因此必须添加验证:

CoOrdinates = ['CL', RoundedSOL_E_1, RoundedSOL_N_1, RoundedEOL_E_1, RoundedEOL_N_1]
Headers = ['Line Name', 'SOL_E', 'SOL_N', 'EOL_E', 'EOL_N']
print(Headers)
print(CoOrdinates)
filename, _ = QFileDialog.getSaveFileName(None, 'Save As', 'Line Plan.csv')
if filename:
    with open(filename, 'a', newline='') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(Headers)
        writer.writerow(CoOrdinates)