'import Tkinter as' macht aerger

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

'import Tkinter as' macht aerger

Beitragvon knekke » 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

Beitragvon Mr_Snede » 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:

Beitragvon modelnine » 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: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » 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

Beitragvon knekke » 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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder