2

我有一个从其他文件调用的 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')
    ...

如何停止按钮的自动执行?为什么会这样?谁能帮我?谢谢!

4

1 回答 1

5

发生这种情况是因为您正在调用该函数。而是将其传递给一个函数对象,例如使用lambda.

..., command=(lambda: exp(Output)))
于 2013-10-10T02:17:08.693 回答