为什么我的python tkinter按钮会自动执行

时间:2013-10-10 02:12:46

标签: python tkinter

我有一个从其他文件调用的python文件 每次导入python文件并从其他人调用mainApp时,python文件中的tkinter按钮会自动执行。 这是python文件代码的一部分

from Tktable import *
def exp(Output):
    import csv
    from tkFileDialog import askdirectory
    folder=askdirectory();
    if folder:
        path = folder+'/outputTable.csv';
        file = open(path, 'w');
        writer = csv.writer(file)
        title = ['Premise','Conclusion','Support','Confidence','Lift']
        writer.writerow(title);
        zip(*Output)
        for item in zip(*Output):
            writer.writerow(item)
        file.close()
def mainApp(Output):
    from Tkinter import Tk, Label, Button, Scrollbar, Frame
    root = Tk()
    top = Frame(root).pack(side = 'top', fill = 'x')
    ...
    export = Button(top, text='EXPORT', command=exp(Output))
    export.grid(row=0, column=4, sticky = 'e')
    ...

如何停止按钮的自动执行?为什么会发生这种情况?谁能帮我?谢谢!

1 个答案:

答案 0 :(得分:2)

这是因为您正在调用该函数。相反,传递一个函数对象,例如使用lambda创建的函数对象。

..., command=(lambda: exp(Output)))