Scrollbar verschwindet, wenn Hauptfenster verkleinert wird
Verfasst: Freitag 15. November 2024, 14:43
Hallo zusammen,
ich habe folgendes Problem:
Mein Testprogramm beinhaltet ein Canvas mit linkseitiger Scrollbar.
Wenn ich das Fenster mit der Maus verkleinere, geht die Scrollbar quasi nicht mit und verschwindet dadurch.
Ich denke, dass der Canvas nicht an das Hauptfenster gebunden ist. Was ist an dem Code falsch?
Hier der Code:
VG Woto
ich habe folgendes Problem:
Mein Testprogramm beinhaltet ein Canvas mit linkseitiger Scrollbar.
Wenn ich das Fenster mit der Maus verkleinere, geht die Scrollbar quasi nicht mit und verschwindet dadurch.
Ich denke, dass der Canvas nicht an das Hauptfenster gebunden ist. Was ist an dem Code falsch?
Hier der Code:
Code: Alles auswählen
import tkinter
class MyView(tkinter.Frame):
def __init__(self, master=None, data=None):
super().__init__(master)
self.grid(sticky="nsew")
##################################################################################
self.canvas = tkinter.Canvas(self, width=1000, height=550)
self.scrollbar = tkinter.Scrollbar(self, orient="vertical", command=self.canvas.yview)
self.scrollable_frame = tkinter.Frame(self.canvas)
self.scrollable_frame.bind(
"<Configure>",
lambda e: self.canvas.configure(
scrollregion=self.canvas.bbox("all")
)
)
self.canvas.create_window((0, 0), window=self.scrollable_frame, anchor="nw")
self.canvas.configure(yscrollcommand=self.scrollbar.set)
self.canvas.grid(row=0, column=0, sticky="nsew")
self.scrollbar.grid(row=0, column=1, sticky="ns")
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
# Beispiel für die Verwendung der Klasse
if __name__ == "__main__":
root = tkinter.Tk()
root.title("Datenkacheln")
screenHeight = root.winfo_screenheight()
screenWidth = root.winfo_screenwidth()
sizeX = 1020
sizeY = 580
posX = (screenWidth // 2) - (sizeX // 2)
posY = (screenHeight // 2) - (sizeY // 2)
root.geometry(f"{sizeX}x{sizeY}+{posX}+{posY}")
app = MyView(master=root)
root.mainloop()