Печать случайных чисел в tkinter (python3) - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу написать программу, которая рисует случайное число из списка после нажатия кнопки.Я написал это, но это не работает, как я хотел бы.Он печатает числа один под другим. Это работает так.

Вот мой код:

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 голосов
/ 17 декабря 2018

Это потому, что вы делаете новый 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...