Как распечатать рандомизированный текст в ткинтер?

Итак, я пишу «карточную игру», в которой каждый раз, когда я нажимаю кнопку, она должна выдавать случайную «карточку» или текст. Дело в том, что это «работает», но не совсем так, как должно, я имею в виду, что когда я нажимаю кнопку, она выводит случайный текст, но выводит только этот конкретный текст. Это значение не рандомизирует значение ПОСЛЕ того, как я запускаю программу и нажимаю кнопку.

import tkinter as tk
from tkinter import filedialog, Label, Text
import os
import random

cards = [Ƈ', ƈ', Ɖ', Ɗ']
value=random.choice(cards)

def printcard():
    print(value)


root = tk.Tk()

Title = Label(root, font="Times 20 bold", 
fg="#242424", text="This is A title")
Title.pack()

canvas = tk.Canvas(root, height=529, width=640, bg="#242424")
canvas.pack()

theframe = tk.Frame(canvas, bg="#dbdbdb")
theframe.place(relwidth=0.8, relheight=0.62, relx=0.1, rely=0.2)

Cardcontent = Label(theframe, font="Times 20 bold", bg="#dbdbdb",
fg="#242424", text="This is a card")
Cardcontent.place(relwidth=0.8, relheight=0.62, relx=0.1, rely=0.17)

Newcard = tk.Button(root, text="New Card", padx=10, pady=5, 
fg="#dbdbdb", bg="#242424", command=printcard)
Newcard.pack()

root.mainloop()

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

Всего 1 ответ


После того, как вы нажмете кнопку, вы printcard только printcard которая будет просто печатать значение. Вы должны переназначить значение, если хотите, чтобы оно каждый раз выбирало новое.

def printcard():
    value=random.choice(cards)
    print(value)

Есть идеи?

10000