Button spousti automaticky command – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Button spousti automaticky command – Python – Fórum – Programujte.comButton spousti automaticky command – Python – Fórum – Programujte.com

 

wenaaa0
Duch
3. 9. 2006   #1
-
0
-

Ahoj

v nasledujicim kodu mi tlacitko (tlac_spocti) automaticky spousti prikaz (funkce spocti - vykresleni toplevel okna c) a tlacitko se ani nevykresli.
Diky za radu.

??



import Tkinter as Tk

class radek_pneu:

def __init__(self,frame,text):

popis = Tk.Label(frame,text=text)
popis.pack(padx=5,pady=5,side="left")
R = Tk.Entry(frame,width=2)
R.pack(side="right")
er = Tk.Label(frame,text=" R")
er.pack(side="right")
vyska = Tk.Entry(frame,width=2)
vyska.pack(side="right")
lomitko = Tk.Label(frame,text="/")
lomitko.pack(side="right")
self.sirka = Tk.Entry(frame,width=3)
self.sirka.pack(side="right")


class App:

def __init__(self,master_frame):

master = Tk.Frame(master_frame)
master.pack()
frame_1 = Tk.Frame(master)
frame_2 = Tk.Frame(master)
frame_1.pack(anchor="w",fill="x")
frame_2.pack(anchor="w")
self.aktualni = radek_pneu(frame_1,u"Zadej aktualni rozm?ry:")
self.maximalni = radek_pneu(frame_2,u"Zadej maxim?ln? rozm?ry:")
tlac_spocti = Tk.Button(master,text="Spo??tej",command=self.spocti())
tlac_spocti.pack(side="right")

def spocti(self):

w1=self.aktualni.sirka.get()
c = Tk.Toplevel()
c.title(w1)
c.mainloop()

#------------------------------------------------------------------------

if __name__ == "__main__":

hl_okno = Tk.Tk()
hl_okno.title("Rychlosti")
app = App(hl_okno)
hl_okno.mainloop()
??

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
4. 9. 2006   #2
-
0
-

wenaaa napsal:

Ahoj

v nasledujicim kodu mi tlacitko (tlac_spocti) automaticky spousti prikaz (funkce spocti - vykresleni toplevel okna c)....



takhle přesně se chová volaná funkce, když je napsána i se závorkami.
self.spocti() se prostě okamžitě při prvním průchodu při spuštění zavolá, vrátí nějakou hodnotu a pak tlačítko v průběhu programu nefunguje. Funguje, ale špatně, protože dochází k volání té návratové hodnoty, což je většinou True nebo False nebo nějaká hodnota. A volání hodnoty není nic.

Jinými slovy - závorky jsou v tomto případě tví nepřátelé :-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Jakub Vojáček
~ Moderátor
0
Grafoman
4. 9. 2006   #3
-
0
-

ale slo by to kdyby command byl:



command=lambda:self.spocti()

ale v tomto připadě je to zbytečné...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
wenaaa0
Duch
4. 9. 2006   #4
-
0
-

fakt ze jo. a me se tam ty zavorky tak libily;)

Nahlásit jako SPAM
IP: ...–
wenaaa0
Duch
6. 9. 2006   #5
-
0
-

Blujacker napsal:

ale slo by to kdyby command byl:



command=lambda:self.spocti()

ale v tomto připadě je to zbytečné...



Znamena to ze v pripade ze budu za command chtit volat funkci s argumentama musim pres lambda?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
6. 9. 2006   #6
-
0
-

Jj, napřiklad:



lambda:self.spocti(priklad)

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Built-In Command — založil Radek

WPF Command vs CommandBindings — založil Kowalsky95

Java Command Input — založil Redix

Command-nefunguje (tkinter) — založil Tom@sQo

Command v externím souboru — založil Navara

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý