Hallo erstmal,
habe nachdem ich einiges mit meinem RPi angestellt habe, als letztes ein 2 zeiliges Display angeschlossen und benutzt. Aber wie das nun mal so ist, reicht das einfache Display nicht mehr aus und ich brauche eine vollständige GUI.
Da ich alle meine Programme bis jetzt in Python geschrieben habe, wollte ich auch die GUI damit schreiben, damit alles gut zusammenpasst. Also hab ich mich in Tkinter eingelesen und auch schon erste Erfolge gehabt (Buttons, Labels etc). Allerdings bekomme ich es nicht hin ein Bild mit Pillow anzeigen zu lassen. Pillow ist die Weiterentwicklung von PIL für Python 3+. Zunächst einmal mein Code:
#!/usr/bin/python3
from tkinter import *
import time
from PIL import Image
fenster = Tk()
fenster.title("Menu")
w = fenster.winfo_screenwidth()
h = fenster.winfo_screenheight()
#fenster.geometry("%dx%d+0+0" % (w,h))
time1 = ''
clock = Label(fenster, font=('arial', 30, 'bold'))
clock.grid(row=0, column=1, columnspan=20)
def tick():
global time1
time2 = time.strftime('%H:%M:%S')
if time2 != time1:
time1 = time2
clock.config(text=time2)
clock.after(200, tick)
bg_image = Image.open("bg.gif")
#img = PhotoImage(bg_image)
bg_label = Label(fenster, image=bg_image)
bg_label.grid(row=0, column=2, columnspan=2, rowspan=2, sticky=W+E+N+S, padx=10, pady=10)
bg_label.image = bg_image
tick()
fenster.mainloop( )
Alles anzeigen
Dabei bekomme ich den Fehler "_tkinter.TclError: image "..." doesn't exist" in der Zeile 26 wo dem Label das Bild zugewiesen wird. Dann habe ich mich erkundigt und rausgefunden, dass ich zuerst das Bild nach dem Öffnen in PIL in ein Tkinterobjekt umwandeln muss. Dabei wurde auf ImageTk verwiesen welches ich aber nicht importieren kann, da es nicht installiert ist, bei PIL aber dabei sein sollte.
Nun meine Frage, ich benötige PIL um verschiedene Formate zu öffnen sowie um die Bilder zu verkleinern etc. Mit Tkinter alleine also nicht machbar. Wie kann ich ImageTk nachinstallieren bzw. den Error beheben?
Anbei eine kleine Zeichnung wie ich mir mein GUI vorstelle.