我正在尝试获取一组按钮,以更改我的全局变量" y"的值。我是Python的新手,对Tkinter非常新。我尝试在类似问题中使用lambda和解决方案似乎还没有解决这个问题。
这是我的代码:
import tkinter as tk
from tkinter import *
master=Tk()
def assignint(value):
global y
y = value
y= StringVar()
frame = Frame(master)
frame.grid(row=0, columnspan=4)
for i in range(2):
Grid.rowconfigure(master,i,weight=1)
for i in range(4):
Grid.columnconfigure(master,i,weight=1)
Button1 = Button(master,text='Fault1',command= lambda: assignint(0))
Button1.grid(row=1, column=0,sticky=N+S+E+W)
Button2 = Button(master,text='Fault2',command= lambda: assignint(1))
Button2.grid(row=1, column=1,sticky=N+S+E+W)
Button3 = Button(master,text='Fault3',command= lambda: assignint(2))
Button3.grid(row=1, column=2,sticky=N+S+E+W)
Button4= Button(master,text='Fault4',command= lambda: assignint(3))
Button4.grid(row=1, column=3,sticky=N+S+E+W)
if y.get()!='':
print('The value of y is:', y.get())
mainloop()
更改StringVar
的值时需要使用set
方法。
如替换:
y = value
with:
y.set(value)