Kezdőoldal » Számítástechnika » Programozás » Hogyan tudom megváltoztatni...

Hogyan tudom megváltoztatni egy button szövegét Pythonban?

Figyelt kérdés

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")



2021. dec. 20. 12:46
 1/10 A kérdező kommentje:

A következő nem működik.

button[n]["text"] = "99"

2021. dec. 20. 12:59
 2/10 anonim ***** válasza:

Használd a textvariable paramétert - példa:

[link]


#1: persze, hogy nem működik, hisz a Button osztálynak nincsen text tagváltozója.

2021. dec. 20. 13:27
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:

#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")

2021. dec. 20. 13:44
 4/10 anonim ***** válasza:
#3: mert a gombnak (a Button osztálynak) nincsen set() tagfüggvénye, a set() a StringVar osztályt - amit a Button osztályban használódik fel - szabályozza.
2021. dec. 20. 14:01
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:
#4 És mégis akkor hogy tudom a button[16] gomb textjét megváltoztatni "99"-re?
2021. dec. 20. 15:23
 6/10 anonim ***** válasza:

Ú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.

2021. dec. 20. 15:36
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

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

2021. dec. 20. 15:40
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:

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()

2021. dec. 20. 15:55
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

#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.

2021. dec. 20. 15:57
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

#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]

2021. dec. 20. 16:12
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!