Huhu,wuf hat geschrieben: ↑Samstag 28. April 2018, 11:46 Hi Freddyyy
Die fogenden drei Zeilen:interpretiere ich wie folgt:bs=Screen()
bs.register_shape("xxx.gif")
bs.bgpic("xxx.gif")
a)
bs=Screen()
Du erstellst eine Oberfläche(Fenster) um darauf ein Hintergrundbild zu platzieren.
b)
bs.bgpic("xxx.gif")
Ist das Hintergrundbild im .gif-Format, welches du auf dieser Oberfläche platzieren willst.
c)
bs.register_shape("xxx.gif")
Ist das Symbolbild für deine Turtle im .gif-Format, welche du auf deinem Hintergrundbild platzieren möchtest.
d)
Die .gif's willst du durch .jpeg's ersetzen und das ganze mit einem Tkinter-Skript realisieren.
Damit Tkinter mit .jpeg's umgehen kann braucht er hierfür das PIL-Modul. Das folgende Skript zeigt eine Variante wie dass ganze mit Tkinter aufgesetzt werden könnte:Grus wufCode: Alles auswählen
import tkinter as tk from PIL import Image, ImageTk APP_TITLE = "JPEG-Hintergrund" app_win = tk.Tk() app_win.title(APP_TITLE) # Erzeugt das Hintegrund PIL-Bildobjekt pil_background_image = Image.open("hintergrund.jpg") # Konvertiert das Hintegrund PIL-Bildobjekt zum Tk-Bildobjekt app_win.tk_background_image = ImageTk.PhotoImage(pil_background_image) # Erzeugt das Turtle PIL-Bildobjekt pil_turtle_image = Image.open("turtle.jpg") # Konvertiert das Turtle PIL-Bildobjekt zum Tk-Bildobjekt app_win.tk_turtle_image = ImageTk.PhotoImage(pil_turtle_image) # Abmessungen des Hintergrundbildes width = app_win.tk_background_image.width() height = app_win.tk_background_image.height() # Erzeuge Bildfläche für das ablegen des Hintergrundbildes canvas = tk.Canvas(app_win, width=width, height=height, highlightthickness=0) canvas.pack() # Legt das Hintegrundbild auf die Bildfläche canvas.create_image(0, 0, image=app_win.tk_background_image, anchor='nw', tag="Hintergrund") # Lege die Turle auf das Hintergrundbild canvas.create_image(10, 10, image=app_win.tk_turtle_image, anchor='nw', tag="Turtle") app_win.mainloop()
ich habe mir mal dieses Programm abgetippt, das ist auch für mich nützlich ^^
so, aber ich habe versucht zum testen einen button drauf zu legen, mein ganzer Code (er ist einfacher gemacht als der oben) sieht dann so aus:
Code: Alles auswählen
import tkinter as tk
from PIL import Image, ImageTk
APP_TITLE = "JPEG-Hintergrund"
app_win = tk.Tk()
app_win.title(APP_TITLE)
pil_background_image = Image.open("talion.jpg")
app_win.tk_background_image = ImageTk.PhotoImage(pil_background_image)
width = app_win.tk_background_image.width()
height = app_win.tk_background_image.height()
canvas = tk.Canvas(app_win, width=width, height=height, highlightthickness=0)
canvas.pack()
canvas.create_image(0, 0, image=app_win.tk_background_image, anchor='nw', tag="Hintertgrund")
def Test():
messagebox.showinfo(message="Test!")
button = Button(app_win, text="Testen!", command=Test, height = 10, width = 20)
button.pack()
app_win.mainloop()
Jemand ne Ahnung warum???
wenn ich am Anfang des Programms, so kenns ich von früher, einfach hinschreibe "from tkinter import *" kommt als Fehlercode raus AttributeError: type object 'Image' has no attribute 'open'