Обновление текста метки одним нажатием кнопки в tkinter python - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь получить метку для отображения случайного числа при нажатии кнопки. Я пробовал get (), set () и config () в функции, как и в аналогичных случаях в stackoverflow, но безрезультатно. Где я go не прав?

import tkinter as tk
import random

HEIGHT=200            #Window height
WIDTH=300             #Window width
TITLE="Random number" #Window title

LWIDTH=40             #Label width
LHEIGHT=50            #Label height
LFONTSIZE=44          #Label font size

def buttonpress():
    LTEXT.set(random.randint(0, 100)) #The intention is for a new value to be calculated
    l.text=LTEXT                      #The intention is for the label text to be updated. Have tried set(), get(), config()

BUTTONWIDTH=17    #button width
BUTTONHEIGHT=2    #button height, but in rows instead of pixels (!!!)

root=tk.Tk()
root.title(TITLE)

LTEXT=tk.IntVar(root)               #defining the intvar
LTEXT.set(random.randint(0, 100))   #setting the initial value

f = tk.Frame(root,width=WIDTH,height=HEIGHT)
f.pack()

l=tk.Label(width=LWIDTH, height=LHEIGHT, text=LTEXT.get(),font=(None,LFONTSIZE))
l.place(relx=0.5, rely=0.3, anchor="center")

b=tk.Button(root,width=BUTTONWIDTH, height= BUTTONHEIGHT, text = "New number",command=buttonpress())
b.place(relx=0.5, rely=0.7, anchor="center")

root.mainloop()

1 Ответ

2 голосов
/ 26 мая 2020

Чтобы получить текст из вашей метки: print(mylabel["text"])

Итак, чтобы изменить его: mylabel["text"] = myrandomnumber

Он работает со всеми параметрами, для всего, кнопок, меток, холста и т. Д. c ...

Пример:

from tkinter import *
root = Tk()
label = Label(text="hello")
def change():
    label["text"] = "world"
button = Button(text="Change", command=change)
label.pack()
button.pack()
...