Seite 1 von 1

GehirnJogger mit Tk

Verfasst: Montag 25. Februar 2008, 22:59
von kaytec
Hallo !

Ein kleiner GehrinJogger !

http://paste.pocoo.org/show/29994/

Dr. Kaytecshima .... :D

So jetzt macht mich mal runter !

gruß frank

Verfasst: Dienstag 26. Februar 2008, 00:01
von BlackJack
Wenn ich das richtig sehe wird da von einem zweiten Thread aus die GUI manipuliert. Das ist unsicher weil `Tkinter` nicht "thread safe" ist.

Verfasst: Dienstag 26. Februar 2008, 00:26
von EyDu
Sehe ich das richtig, dass auf Kommentare aus Speichereffizienz verzichtet wurde ;-) ?

Verfasst: Dienstag 26. Februar 2008, 07:52
von kaytec
Danke an EyDu u. BlackJack !

Eigentlich startet immer nur ein Thread und in seiner Laufzeit sollten die Buttons 'disabled' sein. Macht eigentlich keine Probleme - In einenm Thread nie die GUI manipulieren ?

Bei der fetten grafischen Animation, sollte man auf die Ressourcen achten :oops:. Ok - Kommentare füge ich noch ein - bekomme bestimmt dafür 'Haue' und nicht für den code.

Wer nicht postet, der bleibt dumm !

gruß frank

Verfasst: Dienstag 26. Februar 2008, 08:36
von burli
Wenn ich das Programm beende bekomme ich diesen Fehler
Exception in thread Thread-8:
Traceback (most recent call last):
File "threading.py", line 460, in __bootstrap
self.run()
File "jogger.py", line 23, in run
self.farbe_aendern(self.intro, self.intro_intervall)
File "jogger.py", line 41, in farbe_aendern
self.button_an_aus[index].config(bg=self.dunkel[index])
File "lib-tk/Tkinter.py", line 1200, in configure
return self._configure('configure', cnf, kw)
File "lib-tk/Tkinter.py", line 1191, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
RuntimeError: main thread is not in main loop

Verfasst: Dienstag 26. Februar 2008, 10:15
von BlackJack
@kaytec: Auf die GUI darf man nur von dem Thread aus zugreifen, in dem die `mainloop()` läuft, sonst kann alles mögliche, bis hin zu harten Abstürzen passieren. Das es bei Dir keine Probleme gibt, hat dabei nichts zu sagen.

Der Beitrag von burli ist so ein Problem was durch den Zugriff aus dem anderen Thread entsteht.

Verfasst: Dienstag 26. Februar 2008, 14:45
von kaytec
@ burli

Das passiert bei mir nicht ? Falls ich das Programm mit X beende habe ich auch diese Fehlermeldung - bei laufenden Thread. Beim normalen Beenden passiert dies eigentlich nicht.

@BlackJack

Mein Thread läuft doch in der mainloop() ?! Habe ich da was falsch verstanden? Ich könnte die Buttons auch innerhalb der GUI blockieren, doch wie kann ich testen, ob der Thread noch läuft?

gruß frank

Verfasst: Dienstag 26. Februar 2008, 15:52
von BlackJack
Der Thread läuft nicht in der `mainloop()`. Du hast zwei Threads, einen in dem die `mainloop()` läuft und den "Blinker".

Verfasst: Dienstag 26. Februar 2008, 19:38
von kaytec
Danke BlackJack !

Wie geht man es nun richtig an? Andere Gui benutzen - nur mit ...after() ? Das mit dem Thread anders lösen ?

gruß frank

Verfasst: Dienstag 26. Februar 2008, 21:04
von Leonidas
kaytec hat geschrieben:Andere Gui benutzen
Mit anderen Toolkits hättest du exakt das selbe Problem.

Verfasst: Dienstag 26. Februar 2008, 21:10
von kaytec
Danke Leonidas !

Das hätten wir ja mal geklärt - und wie jetzt anders ?

gruß frank

Verfasst: Mittwoch 27. Februar 2008, 18:56
von kaytec
Hallo !

Habe es mal anders probiert.

http://paste.pocoo.org/show/30294/

gruß frank

Verfasst: Freitag 29. Februar 2008, 11:06
von Gnushi
kaytec hat geschrieben:http://paste.pocoo.org/show/30294/
Mir gefällt es!

Gruß

GnuShi

Verfasst: Freitag 29. Februar 2008, 11:57
von kaytec
Hallo Gnushi !

Mir nicht mehr - meine Freundin schaft 23 Runden ! Meine Anzahl: ..... Runden. Sie hätte gerne eine Bestenliste.

gruß frank

Verfasst: Freitag 29. Februar 2008, 14:33
von Gnushi
kaytec hat geschrieben:Mir nicht mehr - meine Freundin schaft 23 Runden ! Meine Anzahl: ..... Runden. Sie hätte gerne eine Bestenliste.
Alle Achtung!

Jetzt wird es Zeit für den Cheat-Modus.... :twisted:

Kennst Du übrigens "TouchCode"? http://www.pygame.org/project/377/ (Ist mein erstes richtiges Python-Programm)

GnuShi

Verfasst: Freitag 29. Februar 2008, 15:03
von kaytec
Hallo Gnushi !

Kommt mir bekannt vor !:D

Sieht gut aus - Hast du es auch für Win, da meine Freundin Vista-Nutzer ist ?

gruß frank

Verfasst: Freitag 29. Februar 2008, 15:17
von Gnushi
kaytec hat geschrieben:Sieht gut aus - Hast du es auch für Win, da meine Freundin Vista-Nutzer ist ?
Nee, Windows kenne ich nur vom Hörensagen. Die armen Menschen, die sowas benutzen müssen. :twisted:

GnuShi

Verfasst: Freitag 29. Februar 2008, 22:50
von kaytec
Hallo !

http://paste.pocoo.org/show/30787/

Mit Bestenliste !

gruß frank

Verfasst: Samstag 1. März 2008, 00:35
von Gnushi
kaytec hat geschrieben:Mit Bestenliste !
Warum komme ich da nicht rein? Hatte zwar nicht so viele Runden wie Lina, konnte mich aber dennoch sehen lassen.

GnuShi

Verfasst: Samstag 1. März 2008, 00:50
von kaytec
Hallo GnuShi !

Kommt bei dir die Frage nach einem Eintrag in die Bestenliste ? Falls ja, dann mußt du einen angeben, sonst speichert er es nicht in der Bestenliste.

gruß frank