【发布时间】:2017-11-24 10:53:16
【问题描述】:
我正在尝试获取一组按钮来更改我的全局变量“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()
【问题讨论】:
-
打印语句的条件在条件有机会为真之前运行。
-
刚试过去掉if语句,问题依旧,y的值还是空白
-
y为空白,因为print在您有机会更改其值之前运行。就像它在你的 GUI 显示之前运行一样。
标签: python button tkinter global-variables