我写了我的第一个py代码。这段代码创建了一个乐透号码生成器。问题是我的变量nums
不会改变。请帮我。
我明白这不是很好,所以请告诉我如何改进,任何评论都会受到赞赏。我希望随机数字出现在钢包里,这样我就可以按下提交按钮和5个新数字了问题是我名副其实的“nums”不会改变。谢谢你的帮助。
import random
from tkinter import *
#TK()
window = Tk()
window.title("Lottery Nummber Generator")
#Def Click
def click():
global nums
global numsgen
numsgen = random.sample(range(1, 49), 5)
nums = " ".join(str(x) for x in numsgen)
print(nums)
numsgen = random.sample(range(1, 49), 5)
nums = " ".join(str(x) for x in numsgen)
#Fake just to make it look nice
Label(window,text="").grid(row=1, column=0,sticky=W)
Label(window,text="").grid(row=2, column=1,sticky=W)
Label(window,text="").grid(row=2, column=3,sticky=W)
#Submit button
Button(window, text="Submit", width=5,command=click).grid(row=3, column=1, sticky=W)
#Label
group = LabelFrame(window, text="Lottery Numbers:", padx=5, pady=5,fg="dark orange")
group.pack(padx=10, pady=10,)
group.grid(row=2, column=1,sticky=W)
w = Label(group, text=nums)
w.pack()
mainloop()
答案 0 :(得分:0)
要获得要更新的标签,您必须执行以下两项操作之一:
StringVar
与标签相关联。更新变量(通过其set
方法)时,与其关联的任何标签都将自动更改。如果多个窗口小部件需要显示相同的值,这是一个很好的解决方案。w.configure(text=nums)
放入click
函数中。这个解决方案比使用StringVar
简单一点,因为它只需要少一个对象。