Tk () Bild in Fensetr anzeigen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
local_weather
User
Beiträge: 2
Registriert: Samstag 24. März 2018, 11:03

Hallo, Ich habe folgendes Programm geschrieben

Code: Alles auswählen

#!/usr/bin/env python3
# tk_label.py
from tkinter import * # Python 2.7 "from Tkinter import *"
from tkinter import ttk # Python 2.7 "import ttk"
mainWin = Tk()
result = StringVar()
result.set('weigu.lu')
imageLabel_1 = PhotoImage(file='luftfeuchtigkeit.png')
label_1 = ttk.Label(mainWin, textvariable=result, image=imageLabel_1, compound='top')
label_1.grid()
mainWin.mainloop()

Ich bekomme jedoch folgende Fehlermeldung :
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/maxkoster/PycharmProjects/WetterstationALR/image_test.py
Traceback (most recent call last):
File "/Users/maxkoster/PycharmProjects/WetterstationALR/image_test.py", line 8, in <module>
imageLabel_1 = PhotoImage(file='luftfeuchtigkeit.png')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 3366, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 3320, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "luftfeuchtigkeit.png"

Process finished with exit code 1

Ich bin mir jedoch sicher, dass ich die datei in dem selben ordner als das .py programm gespecihert haben.

Mit freundlichen Grüssen.
Max
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das es im gleichen Verzeichnis ist sagt erstmal nix aus. Deine relative Pfadangabe für das Bild bezieht sich auf das current working directory. Und das hängt davon ab, woher du dein Skript aufrufst. Besser sind also entweder volle Pfade, oder dich mittels des os.path modules und der __file__ Variable zum Bild zu hangeln.

Wie dem auch sei - ich glaube dein Problem ist ein anderes. Ich meine mich zu erinnern das Tk nur JPEGs und ggf GIF oder BMP beherrscht. Wenn du PNGs willst, brauchst du noch das Pillow-Modul.

http://effbot.org/tkinterbook/photoimage.htm

Darin bezieht der effbot sich noch auf seine inzwischen veraltete PIL Bibliothek. Nimm Pillow, das ist kompatibel & aktuell.
local_weather
User
Beiträge: 2
Registriert: Samstag 24. März 2018, 11:03

Danke, mit pllow bin ich auf dem richtigen Weg!

Max
Antworten