Chyba v opakování obrázku – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba v opakování obrázku – Python – Fórum – Programujte.comChyba v opakování obrázku – Python – Fórum – Programujte.com

 

hans0
Newbie
1. 4. 2006   #1
-
0
-



from Tkinter import*
root=Tk()
x=50
y=50
def pole():
pozadi=Canvas(root,bg='blue')
pozadi.pack()
stihacka= PhotoImage(file="sti.GIF")
polozka = pozadi.create_image(x, y, image=stihacka)
def akce(event):
global x,y
if event.keysym=='Up': y=y-10
if event.keysym=='Down': y=y+10
if event.keysym=='Left': x=x-10
if event.keysym=='Right': x=x+10
platno.pack_forget()
pole()
root.bind('<Up>',akce)
root.bind('<Down>',akce)
root.bind('<Left>',akce)
root.bind('<Right>',akce)
mainloop()
pole()

když se to spustí, jde tím krásně hýbat po celé ploše, ale po určité chvíli se to sekne a chyba:


Exception in Tkinter callback
Traceback (most recent call last):
Exception in Tkinter callback

dá se s tím něco dělat??

Nahlásit jako SPAM
IP: ...–
I like Gybu homesite:www.gybu.cz :D
geon0
Grafoman
2. 4. 2006   #2
-
0
-

1. Píšeš, že ti to funguje chvíli a pak chyba. Ale mě tahle ukázka nefunguje ani chvíli, ani když tam dám soubor stih.gif.

2. Nemůžeš řešit pohyb tak, že znovu voláš fuknci jako samu sebe - to pak vše znovu vytváříš a nic se nepohybuje. Možná, že to někdy funguje, ale víceméně náhodou a může to pak dávat "divné" chování.

3. I ten pack_forget mi tam nesedí

4. Řešil bych to buď přes itemconfig (viz manuál) nebo spíše pomocí metody canvasu move (viz manuál). Oboje bez záruky, nezkoušel jsem. Ale jde to určitě.

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

funkce:



canvas.move(vec,x,y)

posune vec o x bodů doprava a o y bodů dolů

funkce:


canvas.coords(vec,x,y)

vykreslí vec na x,y

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š
geon0
Grafoman
7. 4. 2006   #4
-
0
-

Blujacker napsal:

funkce:



canvas.move(vec,x,y)

posune vec o x bodu doprava a o y bodu dolů



pokud x a y budou záporná čísla, obrázek se bude posouvat vlevo nahoru

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
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

Opakovani — založil

Opakování programu — založil Zippy

Opakování textu — založil Vladimír Uher

Opakování pozadí — založil UrbiCZ

C# opakování programu — založil Petr

 

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