QFileDialog 在取消时崩溃

QFileDialog crashing on cancel

我在关闭 QFileDialog.getSaveFileName 时遇到问题。如果我选择取消而不继续保存文件,我的程序会崩溃。

我知道该语句将始终为 True,因为 getSaveFileName() 函数总是 returns 一个元组,我应该能够使用 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)

当你选择取消参数时returns文件名是一个空字符串所以你不能打开一个文件,因此它会抛出错误,所以你必须添加一个验证:

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)