Как распечатать рандомизированный текст в ткинтер? - PullRequest
0 голосов
/ 28 марта 2020

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

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

cards = ['1', '2', '3', '4']
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 Ответ

1 голос
/ 28 марта 2020

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

def printcard():
    value=random.choice(cards)
    print(value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...