Seite 1 von 1

Idle hängt nach mainloop

Verfasst: Montag 13. November 2006, 19:13
von Smokie_joe
Erst mal ein Hi @ all (Der neue grüßt alle ;) )

Ich beschäftige mich seit einger Zeit mit Python u. bin nun daran
mit Programme mit GUI (mit dem modul Tkinter) zu erstellen
Ich habe allerdings das Probelm das unter Linux mit der Python vers.
2.4.3 bei mir unmittelbar nach der instanzierung von Tk() das fenster
öffnet (ohne die Methode instanz.mainloop() ) das wär ja nicht all zu schlimm. Wenn ich aber am
ende regulär die Tk instanz mit der Methode instanz.mainloop() "Starte" hängt danach IDLE
(oder die Konsole in welcher ich das skript ausführe) bin danach immer gezwungen die Konsole oder IDLE zu schließen. Es scheint alls der Prozess durch dass schließen des fensters auch nicht beendet wird.

Die Selben Programme laufen wenn ich Sie unter Windows XP (Python vers. 2.5)
ausführe ohne Probleme... ?

Hatte jemand von euch schon mal den Fehler ? oder kann mir jemand weiterhelfen ?

Besten Dank im voraus.

mfg
Smokie_joe :D :D :D

Verfasst: Montag 13. November 2006, 19:33
von schlangenbeschwörer
Hi Smokie_joe,willkommen im Forum!
Zu Linux kann ich dir nix sagen, hab halt Windows, da auch vers. 2.4, aber ich rate dir, wenn möglich Tkinterprogramme in nem eigenen Script zu schreiben, da IDLE ja auch Tkinter ist...
Zum schnellen Testen nehm ich die "command-line", da kommt das Fenster zwar auch direkt, ich hab aber keine Probleme. -Und wenn du nur was optisches testen willst und keine ganzen programme mal eben so eintippst, brauchst du doch eigentlich gar kein mainloop, oder ist das totaler Stuss?
Gruß, jj

Verfasst: Montag 13. November 2006, 19:36
von pyStyler
Hallo und Willkommen,

entweder hast du die beiden Packmanager pack und grid gemischt, oder zeig mal dein Code her. :D

MfG
pyStyler

Verfasst: Montag 13. November 2006, 20:01
von Smokie_joe
Ist bei meinem Skript sowie bei den beispiel Skripten von einer CD die bei nem Buch über Python (Objektorientierte Programmierung mit Python) dabei waren.

Ich hab es mit folgendem Skript (extra auf das einfachste herunter gebracht) nochmal getestet ... sobald mainloop dabei ist hab ich das Problem

Code: Alles auswählen

#beispiel.py

from Tkinter import *


root = Tk()
lab = Label(root,text="test-beispiel")
lab.pack()
root.mainloop()

Verfasst: Montag 13. November 2006, 20:32
von pyStyler
versuch mal das hier

Code: Alles auswählen

#!/usr/bin/env python 
rom Tkinter import *
root = Tk()
lab = Label(root,text="test-beispiel")
lab.pack()
root.mainloop()
und sag mal, ob es besser geworden ist.

Verfasst: Montag 13. November 2006, 20:44
von Smokie_joe
:( :( :( hat sich nix geändert Konsole oder Idle hängen sich immer noch auf

Ich habe die Vermutung das es irgendwie damit zusammenhängt das wenn ich das Fenster schließe der Prozess(Tk..root) nicht terminiert wird... wenn ich das ganze teste die Idle hängen bleibt ich die Idle/Konsole schließe hängen die Prozesse immer noch drin.

Verfasst: Mittwoch 15. November 2006, 14:02
von HWK
Das ist ein bekanntes Problem. Schlangenbeschwörer hat Recht. Man sollte Tkinter-Anwendungen möglichst nicht aus IDLE heraus starten. Ich starte sie entweder direkt aus dem Windows-Explorer oder aus einer DOS-Box. Aus anderen Python-IDEs als Idle scheint es wohl auch zu gehen. Ich habe damit aber keine Erfahrungen.
MfG
HWK