在Tkinter文件对话框中选择文件后出现“请勿本地化”警告

时间:2018-10-22 18:11:46

标签: python python-3.x matplotlib tkinter

我要实现的是自动从文件中绘制数据,以下是我的想法:

  1. 使用Tkinter创建一个简单的GUI,放置一些按钮以激活功能。
  2. 使用tkinter文件对话框定义read_file()以选择文件,并存储数据。
  3. 使用matplotlib绘制图。

这是我的代码的简单版本:

import matplotlib.pyplot as plt
import tkinter as tk

def read_files():
    import tkinter.filedialog as tkf
    filePath = tkf.askopenfilenames()
    with open(filePath, 'r') as file:
        content = file.read()
    # after some lines of code, get data from content
    # data[0] and data[1] are x and y, respectively
    return data

def plot_data():
    data = read_files()
    plt.figure()
    plt.plot(data[0], data[1])
    plt.show()

#simple GUI
root.tk()
btn = tk.Button(root, ...(some args), command=plot_data)
btn.pack()
root.mainloop()

我的代码工作正常,可以读取文件和绘图数据,但这是问题所在:每次选择文件后单击“打开”,文件对话框都不会关闭,并且一个奇怪的窗口显示“不本地化”提示我的数据图,如图所示。

enter image description here

应该注意,如果我注释掉plt.show()并仅打印数据,则该警告消失。

def plot_data():
    data = read_files()
    plt.figure()
    plt.plot(data[0], data[1])
    #plt.show()
    print(data)

我希望我能说清楚自己,如何摆脱这个烦人的窗户?

1 个答案:

答案 0 :(得分:0)

只需在import matplotlib下方和import matplotlib.xxx上方添加一行代码即可解决问题:

import matplotlib
matplotlib.use("TkAgg")    # Add in here
import matplotlib.pyplot as plt