Hogyan tudom megváltoztatni egy button szövegét Pythonban?
Hogyan tudom megváltoztatni egy button szövegét Pythonban?
A következő buttonom van és a textet akarom megváltoztatni "99"-re.
button[n] = Button(root,text = "33")
A következő nem működik.
button[n]["text"] = "99"
Használd a textvariable paramétert - példa:
#1: persze, hogy nem működik, hisz a Button osztálynak nincsen text tagváltozója.
#2 Köszönöm a segítséget, de én egy gomb (button) szövegét akarom megváltoztatni. A következő nem működik.
button[16].set("99")
Úgy, hogy létrehozol a Stringvar osztály egy példányát tartalmazó változót, amit a set() tagfüggvényével beállítasz és ezen változót hozzárendeled a button[16] tömbelem inicializálásakor (a Button konstruktor textvariable paraméterénél), majd az előbb említett set() tagfüggvény újbóli meghívásával frissítheted a gomb szövegét.
De mindezt már bemutattam a #2-es hozzászólásomban szereplő példában.
Elvileg a
b = Button(root,text = "33")
b['text'] = '99'
kódnak müködnie kéne. Szerintem valahol máshol van a hiba. Rakd fel valahova a kódodat
Ez is müködik:
from tkinter import Tk, StringVar, Button
root = Tk()
button_text = StringVar()
button_text.set('1')
Button(
____root,
____textvariable=button_text,
____command=lambda: button_text.set(str(int(button_text.get())+1))
).pack()
root.mainloop()
meg ez is:
root = Tk()
button = Button(
root,
text='1'
)
def increment():
____button['text'] = str(int(button['text']) + 1)
button['command'] = increment
button.pack()
root.mainloop()
#7: Nem, nem fog működni.
A Button osztály példányosításakor nem jön létre "text" indexű tömbelem.
Ezért kell a Button osztály példányosításakor a textvariable paramétert használni.
#9:
De, müködik, tessék kipróbálni: [link]
Ami létrejön az nem egy 'text' indexü tömbelem. Ha megvalósítod az osztályodban a `__getitem__` metódust, akkor azzal meg tudod mondani, mi történjen, hogyha valaki a []-operátort használja egy instance-den.
Amúgy ebben a formában használják is, ha pl megnézed a tkinter forrás kódját: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!