Ich arbeite gerade an einem Fenster für ein Programm, welches so eine Art Erinnerungscollage mit Bildern und Texten werden soll. Weil natürlich nicht 20 große Bilder gleichzeitig auf den Bildschirm passen muss eine Scrollbar helfen.
Leider kann man diese ja nur in einem Canvas realisieren, in dem ich wohl anscheinend ein Frame brauche, um darin etwas darstellen zu können, so weit habe ich das zumindest verstanden.
Mein Problem: Ich kann zwar dieses Fenster mit Bildern usw. und einer Scrollbar erstellen, kann die Bilder usw. aber nur mit pack oder grid platzieren, brauche aber place, um Sie da hin zu patzieren wo ich sie gerne hätte. Wenn ich ihnen allerdings mit place Koordinaten zuweise, wird nichts mehr angezeigt.
Diesen Code habe ich mir von verschiedenen Quellen zusammengesucht und an mich angepasst:
Code: Alles auswählen
import tkinter as tk
def onFrameConfigure(canvas):
'''Reset the scroll region to encompass the inner frame'''
canvas.configure(scrollregion=canvas.bbox("all"))
root = tk.Tk()
root.minsize(800,700)
img1 = tk.PhotoImage(file = "example.gif")
canvas = tk.Canvas(root, borderwidth=0, background="#ffffff")
frame = tk.Frame(canvas, background="#0040FF")
vsb = tk.Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw")
frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))
label1 = tk.Label(frame, text="hi")
label2 = tk.Label(frame, image=img1)
label1.place(x=0, y=0)
#label2.place(x=0, y=0)
root.mainloop()
Vielen Dank!
Liebe Grüße, RobinB