gpt4 book ai didi

python - 如何使用 Tkinter 的 asksaveasfile 函数定位生成的图以进行保存?

转载 作者:太空宇宙 更新时间:2023-11-04 00:22:03 25 4
gpt4 key购买 nike

如何使用 asksaveasfile 函数定位我生成的绘图,以便用户可以为生成的绘图输入自定义文件名?我设置了其他功能来读取数据和生成图表,但我想这样做,以便完成我所有工作的 GUI 将打开一个窗口,通过用户输入而不是我简单地保存生成的图表- 为生成的绘图命名。

from tkinter import * # all modules imported, most remain unused atm
from tkinter import messagebox
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from tkinter.filedialog import askopenfile
from tkinter.filedialog import asksaveasfile
import numpy as np
import matplotlib.pyplot as plt
from PIL import ImageTk

def UseData():
data1, data2 = OpenFile()
plt.figure(1)
plt.plot(data1, data2)
plt.title('Variable')
plt.ylabel('Some Units')
plt.xlabel('More Units')
plt.tight_layout()
result = messagebox.askyesno("Window-1", "Data processed. \nWould you like to save the figure?")
if result== True:
asksaveasfile(filetypes=(("PNG Image", "*.png"),("All Files", "*.*")),
defaultextension='.png', title="Window-2")
# a = 'picture.png'
# plt.savefig(a)
messagebox.showinfo("Window-3", "Plot Saved.") # Conf. message of saving

OpenFile 函数非常适合导入我感兴趣的数据,所以这无关紧要。我遇到的问题是我在底部的 if 语句的一部分,它基本上包含 A.) 我想要保存绘图的方式(通过 asksaveasfile 命令)和 B.) 在 a 中的硬编码文件名。有没有办法让上述命令针对已生成的特定图并保存它?如果没有,那也没关系,但我想不出一种方法让它发挥作用。

最佳答案

改用asksaveasfilename,因为它返回所选/创建文件的路径(如果可能,通过调用 native GUI,如果文件不存在则允许创建文件)。所以您需要做的只是:

a = asksaveasfilename(filetypes=(("PNG Image", "*.png"),("All Files", "*.*")), 
defaultextension='.png', title="Window-2")
plt.savefig(a)

但为了安全起见,还要检查该窗口之后是否有文件名,因为用户可能会“取消”:

a = asksaveasfilename(filetypes=(("PNG Image", "*.png"),("All Files", "*.*")), 
defaultextension='.png', title="Window-2")
if a:
plt.savefig(a)

关于python - 如何使用 Tkinter 的 asksaveasfile 函数定位生成的图以进行保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48775119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com