在Tkinter中打印随机数(python3)

时间:2018-12-17 15:21:10

标签: python python-3.x tkinter

我想编写单击按钮后从列表中提取随机数的程序。我已经写了,但是它不像我想要的那样工作。它在一个数字和另一个数字之间打印。 It's working like that.

这是我的代码:

from tkinter import *
import random


def draw(param):
    number = Label(root, height=1, width=20, text=param)
    return number.pack()

root = Tk()
frame = Frame(root, width=300, height=450)
frame.pack()

numbers = [x for x in range(1,6)]

buttonDraw = Button(frame, text="Draw",
                                       command=lambda: draw(random.choice(numbers)))

buttonDraw.pack()

root.mainloop()

单击按钮后,是否可以用新的随机数替换以前的第一个数字?

1 个答案:

答案 0 :(得分:1)

这是因为您每次按下按钮都会创建新的tkinter.Label。在tkinter.Label方法之外创建一个draw,仅更改draw方法中的值。

from tkinter import *
import random


def draw(param):
    num.set(param)

root = Tk()
frame = Frame(root, width=300, height=450)
frame.pack()

numbers = [x for x in range(1, 6)]

buttonDraw = Button(frame, text="Draw",
                    command=lambda: draw(random.choice(numbers)))

buttonDraw.pack()
num = StringVar()
Label(root, height=1, width=20, textvariable=num).pack()
root.mainloop()
相关问题