'import Tkinter as' macht aerger

Fragen zu Tkinter.
Antworten
Benutzeravatar
knekke
User
Beiträge: 100
Registriert: Freitag 29. Oktober 2004, 17:23
Wohnort: Schweden

Donnerstag 6. April 2006, 15:08

Folgender Code funktioniert einwandfrei:

Code: Alles auswählen

#!/usr/bin/python
from Tkinter import *

def ok(textfeld):
    text = textfeld.get(1.0, END)
    print text

def gui():
    root = Tk()
    textfeld = Text(root, width=45, height=6)
    textfeld.grid()
    button = Button(root, text="Get", command=lambda: ok(textfeld))
    button.grid()
    root.mainloop()
gui()
Aber wenn ich anstelle von 'from Tkinter import *' 'import Tkinter as tk' benutze:

Code: Alles auswählen

#!/usr/bin/python
import Tkinter as tk

def ok(textfeld):
    text = textfeld.get(1.0, END)
    print text

def gui():
    root = tk.Tk()
    textfeld = tk.Text(root, width=45, height=6)
    textfeld.grid()
    button = tk.Button(root, text="Get", command=lambda: ok(textfeld))
    button.grid()
    root.mainloop()
gui()
bekomme ich folgende Fehlermeldung:
File "tkentry.py", line 5, in ok
text = textfeld.get(1.0, END)
NameError: global name 'END' is not defined
was mache ich falsch????
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Donnerstag 6. April 2006, 15:15

ersetze END durch tk.END
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Donnerstag 6. April 2006, 15:20

Und vor allen Dingen lies Dir die Semantik zu

Code: Alles auswählen

from <blah> import *
in der Doku durch, dann verstehst Du auch warum das (nach der Änderung) nicht tut, und kriegst auch gleich noch mit warum man das sowieso nicht machen sollte (also das from ... import *)...
--- Heiko.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 6. April 2006, 15:34

Irgendwie ist das aber auch etwas über das gerade Anfänger stolpern :( Ich schätzte mal das viele Beispiele im Netz einfach "from Tkinter import *" nutzten :(
Das ist das selbe, wie input() vs. raw_input() :(

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
knekke
User
Beiträge: 100
Registriert: Freitag 29. Oktober 2004, 17:23
Wohnort: Schweden

Donnerstag 6. April 2006, 15:36

Vielen Dank.... da kann man aber auch nun wirklich nicht drauf kommen :roll:

Die Problematik mit 'from <blah> import *' habe ich mitbekommen... ich ueberarbeite gerade alten Code und bin daher auf dieses 'Problem' gestossen.
Antworten