Ich habe eine Scrollbar in meinem Fenster eingefügt (in Verbindung mit Canvas)
Wie kriegt man es hin, dass das Scrollen ganz oben anfängt.
Scrollbar fängt nicht oben an!?
- __blackjack__
- User
- Beiträge: 13151
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ich weiss nicht ob ich der Einzige bin, aber mir ist das Problem so *überhaupt nicht* klar nach dieser Beschreibung. Kannst Du ein minimales, aber lauffähiges Codebeispiel zeigen und beschreiben was genau Du erwartest und was stattdessen passiert?
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Hi Felixpythontkinter
Hier etwas für das Canvas Studium:Zeig uns doch bitte deine Kodierversuche.
Gruss wuf
Hier etwas für das Canvas Studium:
Code: Alles auswählen
import tkinter as tk
APP_TITLE = "Scrolled Canvas"
APP_XPOS = 100
APP_YPOS = 100
APP_WIDTH = 350
APP_HEIGHT = 200
class Application(tk.Frame):
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, master)
self.label_frame = tk.Frame(self)
self.label_frame.pack(padx=0, pady=0)
self.vert_scrollbar = tk.Scrollbar(self.label_frame)
self.vert_scrollbar.pack(side='right', fill='y')
self.canvas = tk.Canvas(self.label_frame, bg='white',
yscrollcommand=self.vert_scrollbar.set)
self.canvas.pack(side='left', fill='both', expand=True)
self.canvas['width'] = 200
self.canvas['height'] = 200
self.canvas['scrollregion'] = (0, 0, 200, 500)
self.vert_scrollbar['command'] = self.canvas.yview
self.canvas.create_line(0, 0, 200, 500, fill='red')
button_frame = tk.Frame(self)
button_frame.pack(pady=(10, 0))
tk.Button(button_frame, text="Scrollbar oben",
command=self.set_to_top).pack(side='left', padx=2)
tk.Button(button_frame, text="Scrollbar unten",
command=self.set_to_bottom).pack(side='left', padx=2)
def set_to_bottom(self):
self.canvas.yview('moveto', 1.0)
def set_to_top(self):
self.canvas.yview('moveto', 0.0)
def main():
app_win = tk.Tk()
app_win.title(APP_TITLE)
app_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS))
#app_win.geometry("{}x{}".format(APP_WIDTH, APP_HEIGHT))
app = Application(app_win)
app.pack(fill='both', expand=True, padx=10, pady=10)
app_win.mainloop()
if __name__ == '__main__':
main()
Gruss wuf
Take it easy Mates!