tkinter,bilder und unterprogramme

Fragen zu Tkinter.
Antworten
VAIVS
User
Beiträge: 2
Registriert: Freitag 26. Januar 2007, 18:27

Samstag 27. Januar 2007, 09:56

hallo,

ich schreibe ein programm wo man mit drücken der 'a' taste ein fenster mit einem bild erscheinen soll.das problem ist ,dass ich immer diese fehlermeldung bekomme wenn ich auf die 'a' taste drücke:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "D:\Programme\python\lib\lib-tk\Tkinter.py", line 1403, in __call__
    return self.func(*args)
  File "C:/Dokumente und Einstellungen/Salva/Eigene Dateien/Info/Python/Projekte/Yu-Gi-Oh_SimulatorV4/testsimulator.pyw", line 13, in abc
    bild_token = Label(frame_t, image=ph_token)
  File "D:\Programme\python\lib\lib-tk\Tkinter.py", line 2464, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "D:\Programme\python\lib\lib-tk\Tkinter.py", line 1930, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
TclError: image "pyimage7" doesn't exist
Hier ist das programm. ich hoffe ihr könnt mir weiterhelfen.

Code: Alles auswählen

from Tkinter import *
from PIL import Image, ImageTk

def abc(event):
    
       hf_t = Tk()
       frame_t = Frame(hf_t)
       frame_t.pack()
    
       im_token = Image.open('tokus.jpg')
       ph_token = ImageTk.PhotoImage(im_token)

       bild_token = Label(frame_t, image=ph_token)
       bild_token.pack()

       hf_t.mainloop()

hf = Tk()
frame = Frame(hf)
frame.pack()
frame.bind_all('a', abc)
hf.mainloop()
BlackJack

Samstag 27. Januar 2007, 10:35

Zwei Fehler: `Tk` ist immer der Typ vom Hauptfenster und davon darf es nur eines geben, und `mainloop()` heisst *Haupt*schleife ─ davon darf es auch nur eine geben.

Zusätzliche Fenster kann man mit der Klasse `Toplevel` erstellen.

Was sollen denn die `*_t` in den Namen in der `abc()`-Funktion bedeuten?
VAIVS
User
Beiträge: 2
Registriert: Freitag 26. Januar 2007, 18:27

Samstag 27. Januar 2007, 12:06

danke, für die hilfe. jetzt klappt das endlich.
Antworten