Вы в основном должны, в рамках метода clicked
, изменить свойства любого объекта, на котором вы хотите отображать бросок кубика.
Я не уверен, что label вы ссылались на ваш вопрос, поскольку в вашем коде нет объектов меток, но в приведенной ниже программе показано, как изменить саму кнопку, чтобы отобразить последний ролик:
import tkinter as tk
from random import randrange
constant = tk.Tk()
def main():
screen()
frame = frame_dice()
dice_button(frame)
tk.mainloop()
def screen():
canvas = tk.Canvas(constant, width = 300, height = 150)
canvas.pack()
return canvas
def clicked():
num = randrange(1, 7)
button["text"] = f"Roll (last roll was {num})"
def frame_dice():
frame = tk.Frame(constant, bg = "yellow")
frame.place(relheight = .8, relwidth = .8, relx = .1, rely = .1)
return frame
def dice_button(frame):
global button
button = tk.Button(frame, text = "Roll", bg = "red", command = clicked)
button.place(relx = .1, rely = .1, relheight = .8, relwidth = .8)
main()
Я сделал button
global, чтобы его можно было правильно изменить несколькими методами (a) , но важный бит заключается в следующем:
def clicked():
num = randrange(1, 7)
button["text"] = f"Roll (last roll was {num})"
Это последняя строка, которая изменяет свойство текста кнопки, чтобы показать, как это может сделать:
введите описание изображения здесь
(a) Обычно, если вы повторно связываете переменную в любом месте метода, она локальна для этого метода - использование global
отменяет это.