Dotaz k Tkinteru – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dotaz k Tkinteru – Python – Fórum – Programujte.comDotaz k Tkinteru – Python – Fórum – Programujte.com

 

Martin0
Newbie
12. 7. 2006   #1
-
0
-

Nevim jak vy?e?it tla??tko k ukon?en? aplikace, kdy? m?m n?jakou aplikaci v Tkinteru. zkou?el sem nazev_okna.quit(), ale to funguje spravn? jen kdy? tu aplikaci p?evedu do .exe ,jinak se to kousne.
J??t? bych potřeboval v?d?t jak ud?lat: m?m hlavn? okno aplikace kde je tla??tko co spou?t? nov? podokno, kdy? na n?j kliknu tak se to okno objevi ale neni "v pop?ed?" nevím jak to nastavit aby to vyskakovalo jako "aktivn?" okno.

2 Geon:Kdy? si mi opravoval úkol ?.14 s prvo??sly tak si mi tam napsal do pozn?mky: "PRo? tzam nem?? for x in range(N): ? to while je tam celkem zbyte?n?..." nevím jak to mysl?? tak pros?m o vysv?tlen? :)

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

[i]Nevim jak vyřešit tlačítko k ukončení aplikace, když mám nějakou aplikaci v Tkinteru. zkoušel sem nazev_okna.quit(),[/i]

okno.destroy()

[i]Ještě bych potřeboval vědět jak udělat: mám hlavní okno aplikace kde je tlačítko co spouští nové podokno, když na něj kliknu tak se to okno objevi ale neni "v popředí" nevím jak to nastavit aby to vyskakovalo jako "aktivní" okno.[/i]

okno.focus_set()
okno.transient()
okno.grab_set()


[i]2 Geon:Když si mi opravoval úkol č.14 s prvočísly tak si mi tam napsal do poznámky: "PRoč tzam nemáš for x in range(N): ? to while je tam celkem zbytečné..." nevím jak to myslíš tak prosím o vysvětlení [/i]

no, máš tam přeci: for x in cisla: ... a předtím si celkem zbytečně vytváříš "cisla" jako seznam cisel od 0..N pomocí while. To by slo přeci udělat:

for x in range(N): ...

nebo efektivněji:
for x in range(N/2+1):


;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Martin0
Newbie
12. 7. 2006   #3
-
0
-

Jo to aktivn? vstupn? pole sem vy?e?il, s t?m p??kazem na ukon?en? si mi pomohl tak?e d?kuji mnohokr?t. Ale to

for x in range(N)

tak to sem zkou?el u? p?edt?m ale n?jak se mu to nel?b? tak proto sem tam vytv??el ten seznam ??sel.
A m?m je?t? nov? dotaz(ur?it? si r?d :D):jak p?i?adit k Buttonu kl?vesu, aby po stisku kl?vesy se vykonola to sam? jako bych na to klikl my??? Nem??u na to p?ij?t v?dy to nap??e chybu.

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

def test():

N=int(vstup.get()) # zm?na
if N>1000000:
import tkMessageBox
tkMessageBox.showwarning("To je MOC!","Zadane cislo je prilis vysoke")
else:
for x in range(2,N): # zm?na

if N%x==0:
jeprvocislo=False
...........


[i]přirazení klávesy k Buttonu [/i]
spíš se kl?vesy přiřazují k Entry nebo k hlvnímu oknu, protože pokud ho přiřadíš k Buttonu, bude klávesa fungovat, jen když tlačítko bude mít focus ;-)

jinak se to dělá pomocí metody bind ...ukaž kod a co ti to píše zachybu, ale nejdřív se podívej na 21. lekci a na http://www.tkintercz.wz.cz/tkinter-events-and-bindings.htm

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
geon0
Grafoman
12. 7. 2006   #5
-
0
-

Jo a není žádný důvod v Tkinter nepsat česky, když dodržíš pár pravidel ;-).

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Martin0
Newbie
12. 7. 2006   #6
-
0
-

Odkaz, 21. lekce, a zm?na cyklu moc pomohla, tak?e d?ky moc.
P.S. Opravil sem na t?ch prvo?islech co si ??kal, j? s?m bych si t?ch v?c? asi nev?iml :))

Nahlásit jako SPAM
IP: ...–
Martin0
Newbie
13. 7. 2006   #7
-
0
-

Nový dotaz: Jak udělat když mám listbox s posuvníkem (ten funguje správně) aby se dalo "normálně" rollovat kolečkem?

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
13. 7. 2006   #8
-
0
-

chlapi, nebojte se zakl?dat nov? t?mata. JE to p?ehledn?j??. TAky se snad nau??te volit lep?? n?zvy t?mat nez "pomoc s Tkinter" :-)

Hezk? ?e?en? bohu?el nezn?m, i kdy? si mysl?m, ?e existuje. Zn?m toto:

1. listbox mus? m?t kl?vesnicov? focus. Nejl?pe snad - kdy? na n?ho najede? tak ho z?sk? a kdy? z n?j odede? tak ho ztrat? (z?sk? ho n?kco jin?). A pak bude MouseWheel fungovat norm?ln?, dokonce i kurzorov? ?ipky + PageUp/DOwn.

listbox.bind("<Enter>", zaostrit)
listbox.bind("<Leave>", odostrit)

Asi nejde, aby focus m?lo nic, tak?e mus?? v odostrit focus n?komu p?edat (t?eba Framu). A nap?.:

def zaostrit(udalost):
udalost.widget.focus_set()

2. Dal?? mo?nost je, ?e focus bude po??d sledovat my?:
frame.tk_focusFollowsMouse()

, ale to ti bude b?hat po v?ech widgetech takov? ta zna?ka, ?e m? focus, leda?e bys u v?eho zm?nil toto chov?n?.

Snad to pomohlo.

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Martin0
Newbie
13. 7. 2006   #9
-
0
-

Bylo to jen v tom že focus mělo to okno a ne ten listbox co byl v tom okně. A to byl celej problém. Bez tebe bych si to neuvědomil, takže díky moc :skunk2: .
P.S. Příště založímm nové téma :chiche:

Nahlásit jako SPAM
IP: ...–
Jakub Voj??ek
~ Moderátor
0
Grafoman
15. 7. 2006   #10
-
0
-

Ale dalo by se to celkem bez problemu naprogramovat:



from Tkinter import*
def priRolovani(udalost):
listbox.yview(SCROLL,-(udalost.delta/listbox.size()),"units")
okno=Tk()
scrollbar=Scrollbar()
scrollbar.pack(fill=Y,side=RIGHT)
listbox=Listbox(yscrollcommand=scrollbar.set)
listbox.pack()
scrollbar.config(command=listbox.yview)
for i in range(50):
listbox.insert(END,i)
def vstup(udalost):
okno.bind('<MouseWheel>', priRolovani)
def vystup(udalost):
okno.unbind('<MouseWheel>')
listbox.bind('<Enter>',vstup)
listbox.bind('<Leave>',vystup)
okno.mainloop()

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, 15 hostů

Podobná vlákna

Textvariable v Tkinteru — založil Marek Kadlčík

Zarovnání v Tkinteru — založil maral

Tisk v Tkinteru — založil wickzig

Zavření okna ve tkinteru — založil pawlik

 

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