Prob mit Tkinter beim ausführen in einer Datei unter Linux ?

Fragen zu Tkinter.
Antworten
Blackfankie
User
Beiträge: 16
Registriert: Sonntag 20. Juli 2003, 00:36

Sonntag 20. Juli 2003, 00:53

hi,

Weiß jemand warum vollgendes nicht in einer Datei mit *py
funzt... beim ausführen unter einem xterm

#!/usr/bin/python

from Tkinter import *
root=Tk()
lab=Label(root,text="Viel Spass mit dem Tkinter-Tutorial")
lab.pack()

Geht kommischer weiße nur dierekt über IDEL, ohne Probs aber nicht wie schon gesagt über xterm ( also es geht kein Fenster auf ).

Weis jemand Rat ????

OS ist RH 8.0

MFG

Blackfankie
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 20. Juli 2003, 01:29

Hi Blackfankie,

Code: Alles auswählen

#!/usr/bin/python

from Tkinter import *
root=Tk()
lab=Label(root,text="Viel Spass mit dem Tkinter-Tutorial")
lab.pack() 

if not usingIDLE:
    root.mainloop()
Erklärung: IDLE läuft selber unter Tkinter im mainloop
Gruß

Dookie
Blackfankie
User
Beiträge: 16
Registriert: Sonntag 20. Juli 2003, 00:36

Sonntag 20. Juli 2003, 02:09

ho,

funzt aber bei mir nicht... :-(

NameError: name 'usingIDLE' is not defined

MFG

Blackfankie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 20. Juli 2003, 10:50

So geht's bei nir aber. (RH9)

Code: Alles auswählen

#!/usr/bin/python

from Tkinter import *
root=Tk()
lab=Label(root,text="Viel Spass mit dem Tkinter-Tutorial")
lab.pack()

# if not usingIDLE:
root.mainloop()
Bleibt die Frage, in welchem Modul wird usingIDLE definiert?

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 20. Juli 2003, 11:02

uuups, :oops:
ich hab es aus einem Beispiel auf meiner Platte, da wird usingIDLE extra definiert und mit 0 initialisiert.

also kann das if auch gelöscht werden und für die NichIDLEvariante das root.mainloop() direkt aufgerufen werden.


Gruß

Dookie
Blackfankie
User
Beiträge: 16
Registriert: Sonntag 20. Juli 2003, 00:36

Sonntag 20. Juli 2003, 15:34

Ja, jetzt funzts

Thx :-)

MFG

Blackfankie
Qbi
User
Beiträge: 57
Registriert: Mittwoch 25. Juni 2003, 14:04
Kontaktdaten:

Sonntag 20. Juli 2003, 22:54

hans hat geschrieben:Bleibt die Frage, in welchem Modul wird usingIDLE definiert?
AFAIK kam das erst ab V 2.3 dazu. Mehr kann ich auch nicht sagen ...
Jens Kubieziel http://www.kubieziel.de
http://www.kubieziel.de/pythonwiki/
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Montag 21. Juli 2003, 09:35

Qbi hat geschrieben:
hans hat geschrieben:AFAIK kam das erst ab V 2.3 dazu. Mehr kann ich auch nicht sagen ...
Und ich wundere mich, dass ich in der Onlinedoku (zu 2.2.2) nix finde :roll:

Hans
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Montag 21. Juli 2003, 10:00

Hallo!
hans hat geschrieben:Und ich wundere mich, dass ich in der Onlinedoku (zu 2.2.2) nix finde :roll:
Auch die Version 2.3 kennt usingIDLE nicht, zumindest nicht die letzte Betaversion. Die Verwendung von usingIDLE ist einfach nur ein Tipp, der im Internet kursiert, z.B. http://mail.python.org/pipermail/tutor/ ... 19140.html und wohl auch in irgendeinem Buch zu finden ist.

Wobei ich das Vorgehen noch nicht mal besonders elegant finde, da man immer usingIDLE von Hand setzen muss. Ich würde eher IDLE mit -c "usingIDLE=1" aufrufen (verpackt in einer Patchdatei bzw. einem Script), und im Pythonscript dann sowas machen wie

Code: Alles auswählen

try: usingIDLE
except NameError: root.mainloop()
Jan
Antworten