Der Ablauf ist wie folgt:
import tkinter as tk
window = tk.Tk()
window.title("我的程序")
window.geometry('400x300')
var = tk.StringVar()
lable = tk.Label(window,textvariable = var,font = (('微软雅黑'),12))
lable.pack()
on_hit = True
def run():
global on_hit
if on_hit == True:
on_hit = False
var.set('you hit me')
else:
on_hit = True
var.set('')
button = tk.Button(window,text = 'hit',font = (('微软雅黑'),12),command = run)
button.pack()
window.mainloop()
Der Effekt dieses Programms besteht darin, dass es eine Schaltfläche gibt, die angezeigt wird. Drücken Sie sie erneut und sie verschwindet.
Warum wird die Schaltfläche als Schaltfläche = tk.Button(Fenster, Text) geschrieben = 'Fragen und Antworten generieren',font = ( ('Microsoft Yahei'),12), command = run()), beim Aufrufen der Funktion Klammern hinzufügen und die Taste erneut drücken. Es wird immer angezeigt, dass Sie mich getroffen haben, und der Inhalt im Label oben wird sich nicht mehr ändern?
这句,只是将run这个函数本身让button保存下来,在button被点击后会自动调用(相当于点击后才运行
run()
)。如果改成
解释器会在看到这句的时候立即调用一次
run()
,然后把调用的返回值让button保存下来,现在button被点击后调用的就是这个返回值(这个例子下就是None)。command有两种方式调用:
b = Button(... command = button)
b = Button(... command = lambda: button('hey'))
你想要用()调用的话可以用lambda写:
button = tk.Button(window,text = '生成题目和答案',font = (('微软雅黑'),12),command =lambda:run())