为什么可能这样?当我单击按钮时,它切换为“我已被单击”。但是,“动作”是功能的局部对象。该功能如何引起全局变化?
我希望我需要通过“全局操作”在函数中设置全局操作。
import tkinter as tk
from tkinter import ttk
#Creates tk object
win = tk.Tk()
win.title("TEST")
alabel = ttk.Label(win, text = "A Label")
alabel.grid(column=0, row=0)
#function
def click_me():
action.configure(text="I have been clicked")
alable.configure(foreground='red')
alable.configure(text='a red label')
#adding a button
action = ttk.Button(win, text="Click me", command = click_me)
action.grid(column=1, row=0)
win.mainloop()
答案 0 :(得分:0)
但是,“动作”是函数的本地对象。
那是不正确的。在您向函数内的action
分配某些内容之前,它会引用全局变量action
。
因为要在action
上调用方法而不是将action
设置为新值,所以您正在修改action
指向的对象。