Fehler beim Öffnen PhotoImage

Fragen zu Tkinter.
Antworten
DaFe4U
User
Beiträge: 9
Registriert: Freitag 16. April 2004, 22:05

Hallo zusammen!

Ich habe ein Problem beim Anzeigen einer .tif-Datei, wenn der Pfad zu Ihr aus einer Tkinter-Listbox kommt. Hier der Code:

Code: Alles auswählen

def show_selection():      
        pfad = list.get("active")
        datei = "%s/input.tif" % (pfad)
        nf = Tk()
        bild = ImageTk.PhotoImage(file=datei)
        lbl_bild = Label(nf, image=bild)
        lbl_bild.pack()
        nf.mainloop()
In jedem Verzeichnis, das durch "pfad" ausgelesen wird, liegt eine Datei namens "input.tif". Nehme als Pfad einen absoluten Pfad, der nicht aus der Listbox kommt, funktioniert es. Nach obigem Schema geht ein neues, aber leeres Tk-Fenster auf und es erfolgt folgende Fehlermeldung:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python23\lib\lib-tk\Tkinter.py", line 1345, in __call__
    return self.func(*args)
  File "F:\Scripts\archiv.py", line 54, in button_show_selection
    show_selection()
  File "F:\Scripts\archiv.py", line 81, in show_selection
    lbl_bild = Label(nf, image=bild)
  File "C:\Python23\lib\lib-tk\Tkinter.py", line 2370, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "C:\Python23\lib\lib-tk\Tkinter.py", line 1835, in __init__
    self.tk.call(
TclError: image "pyimage1" doesn't exist
Hat zufällig jemand eine Idee?

Danke und Gruß
David
rogen

probier mal das, so suche ich nach fehlern

Code: Alles auswählen

def show_selection():     
        pfad = list.get("active")
        print "---------pfad-------"
        print pfad
        datei = "%s/input.tif" % (pfad)
        print "-----------mit datei------"
        pirnt datei
        nf = Tk()
        bild = ImageTk.PhotoImage(file=datei)
        lbl_bild = Label(nf, image=bild)
        lbl_bild.pack()
        nf.mainloop() 
DaFe4U
User
Beiträge: 9
Registriert: Freitag 16. April 2004, 22:05

Danke für den Tipp, aber die Strings mit den Pfadangaben, die dabei herauskommen, sind völlig ok. Habe inzwischen sowohl unter Windows als auch Linux getestet und mit den Slashes gespielt. Funktioniert alles nicht. Sobald ich aber den Pfad fest in ImageTk.PhotoImage(...) eintrage, wird das Bild korrekt angezeigt. Das Problem scheint nur zu bestehen, wenn der Pfad aus der Listbox kommt. Textdateien kann ich übrigens mit einer fast identischen Funktion in Textboxes ausgeben.
Antworten