在tkinter GUI中传递变量的正确方法

时间:2015-09-09 14:47:19

标签: python-2.7 user-interface tkinter

我正在尝试编写一个简单的GUI来绘制来自csv文件的数据,我将其读入pandas DataFrame。我对GUI编程完全不熟悉,而且我很难理解像Tkinter这样的事件驱动设置。

作为一个简单的练习,我想设置几个按钮,一个用于打开文件并阅读DataFrame,另一个用于打印生成的DataFrame。我的第一次天真的尝试没有成功:

import pandas as pd
import tkFileDialog
import Tkinter as tk

def open_events_db():
    file_path_string = tkFileDialog.askopenfilename()
    eventsdb = pd.read_csv(file_path_string,encoding='utf-8')
    return eventsdb

def print_events_db(eventsdb):
    print eventsdb

def main():
    root=tk.Tk()
    eventsdb = tk.Button(text='File Open', command=open_events_db).pack(fill=tk.X)
    tk.Button(text='Print DB', command=lambda:print_events_db(eventsdb)).pack(fill=tk.X)
    tk.mainloop()


if __name__=="__main__":
    main()

我可以在文件中正确阅读并打开它,但事后来看,显然我无法从文件打开按钮返回eventsdb并将其作为打印按钮的参数。

我认为让按钮在该数据库上运行是不合理的,那么在GUI中传递变量的正确方法是什么?

0 个答案:

没有答案