Seite 1 von 1

Problem nach: import tkinter as tk

Verfasst: Dienstag 1. Juni 2010, 14:29
von RedSharky
Hallo Leute,

ich habe ein Problem, das ich mir nicht erklären kann. Seit ich versuche mein Programm von "from tkinter import *" auf "import tkinter as tk" umzustellen, bekomme ich blöde Fehlermeldungen.

Folgendes Skript funktioniert:

Code: Alles auswählen

from tkinter import *
from tkinter import ttk

root = Tk()
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)

mainFrm = ttk.Frame(root, padding="10")
folderBtn = ttk.Button(mainFrm, text="Open")

mainFrm.grid(column=0, row=0, sticky=(N, S, E, W))
folderBtn.grid(column=2, row=0, sticky=(W), padx=5)

root.title("Open folder")
root.mainloop()
Wenn ich nun aber "import tkinter as tk" verwende:

Code: Alles auswählen

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)

mainFrm = ttk.Frame(root, padding="10")
folderBtn = ttk.Button(mainFrm, text="Open")

mainFrm.grid(column=0, row=0, sticky=(N, S, E, W))
folderBtn.grid(column=2, row=0, sticky=(W), padx=5)

root.title("Open folder")
root.mainloop()
...dann bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "frage.py", line 13, in <module>
mainFrm.grid(column=0, row=0, sticky=(N, S, E, W))
NameError: name 'N' is not defined
Drücken Sie eine beliebige Taste . . .


Frage: Wieso funktioniert nun grid() bzw. sticky nicht mehr? Und wie kann ich das abstellen?

Danke schonmal für Eure Hilfe!

Re: Problem nach: import tkinter as tk

Verfasst: Dienstag 1. Juni 2010, 14:35
von jens
probiere es mal mit:

Code: Alles auswählen

sticky=(tk.N, tk.S, tk.E, tk.W)

Re: Problem nach: import tkinter as tk

Verfasst: Dienstag 1. Juni 2010, 14:46
von RedSharky
War ja klar, dass es so ein Fehler war. Einfach überall ein tk. voranstellen....

Danke!

Re: Problem nach: import tkinter as tk

Verfasst: Dienstag 1. Juni 2010, 16:38
von gkuhl
Ich finde es mit Zeichenketten schöner:

Code: Alles auswählen

sticky=('N', 'S', 'E', 'W')

Re: Problem nach: import tkinter as tk

Verfasst: Mittwoch 2. Juni 2010, 16:59
von Pascal
Wenn du Tkinter importierst, importierst du auch das Modul Tkconstants
Ein Ausschnitt daraus:

Code: Alles auswählen

# -anchor and -sticky
N='n'
S='s'
W='w'
E='e'
NW='nw'
SW='sw'
NE='ne'
SE='se'
NS='ns'
EW='ew'
NSEW='nsew'
CENTER='center'
Bei N, S, W ... handelt es sich um Konstanten!


Auch wenn das Problem schon gelöst ist, wollt ich das noch hinzufügen.