首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Tkinter的asksaveasfile函数锁定生成的保存图?

如何使用Tkinter的asksaveasfile函数锁定生成的保存图?
EN

Stack Overflow用户
提问于 2018-02-13 20:30:59
回答 1查看 1.2K关注 0票数 3

如何使用asksaveasfile函数将我生成的绘图作为目标,以便用户可以为生成的绘图输入自定义文件名?我还有其他函数设置来读取数据和生成图表,但我想让它成为我所有工作都是在其中完成的GUI将打开一个窗口,通过用户输入保存生成的绘图,而不是我只是硬编码生成的地块的名称。

代码语言:javascript
复制
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。文件名中的硬编码。是否有一种方法可以让上述命令针对已经生成的特定情节并保存它?如果不是那样的话,那很好,但我想不出一个办法让它发挥作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-13 21:16:39

使用asksaveasfilename代替,因为它返回到所选/创建的文件的路径(如果可能的话调用本机GUI,这允许在不存在的情况下创建文件)。所以你所要做的就是:

代码语言:javascript
复制
a = asksaveasfilename(filetypes=(("PNG Image", "*.png"),("All Files", "*.*")), 
            defaultextension='.png', title="Window-2")
plt.savefig(a)

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

代码语言:javascript
复制
a = asksaveasfilename(filetypes=(("PNG Image", "*.png"),("All Files", "*.*")), 
            defaultextension='.png', title="Window-2")
if a:
    plt.savefig(a)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48775119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档