Forum
>>
Programmazione Python
>>
GUI
>>
barra di scorrimento
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da marcello |
2017-09-23 20:42:25 - barra di scorrimento
|
Non è possibile controllare con una barra di scorrimento on oggetto Canvas contenente oggetti Frame?
esempio: import tkinter as tk finestra = tk.Tk() quadro = tk.Frame(finestra, width=800, height=600) barra = tk.Scrollbar(finestra, orient=tk.VERTICAL) griglia = tk.Canvas(quadro, width=800, height=600, scrollregion=(0, 0, 800, 1200)) riquadro0 = tk.Frame(griglia, width=400, height=600) riquadro1 = tk.Frame(griglia, width=400, height=600) griglia0 = tk.Canvas(riquadro0, width=400, height=1200, scrollregion=(0, 0, 400, 1200)) griglia1 = tk.Canvas(riquadro1, width=400, height=1200, scrollregion=(0, 0, 400, 1200)) griglia.config(yscrollcommand=barra.set) barra.config(command=griglia.yview) ovale = griglia0.create_oval(0, 0, 400, 1000, fill = 'red') testo = griglia0.create_text(10,10, text = 'griglia0') ovale1 = griglia1.create_oval(0, 0, 400, 1000, fill = 'green') testo1 = griglia1.create_text(10,10, text = 'griglia1') riquadro0.pack(side=tk.RIGHT) riquadro1.pack() griglia0.pack(side=tk.RIGHT) griglia1.pack() griglia.pack() barra.pack(side=tk.RIGHT, fill=tk.Y) quadro.pack() finestra.mainloop() |
|
Scritto da marcello |
2017-09-24 17:23:05 - Re: barra di scorrimento, o meglio Canvas con Frame!
|
In effetti la domanda relativa alla Scrollbar è subordinata ad un'altra.
Se nel 'Canvas' si definisce un 'Frame', il 'Canvas' non si vede più? Esempio: import tkinter as tk finestra = tk.Tk() quadro = tk.Frame(finestra, width=800, height=600) barra = tk.Scrollbar(finestra, orient=tk.VERTICAL) griglia = tk.Canvas(quadro, width=800, height=600, scrollregion=(0, 0, 800, 1200)) griglia.config(yscrollcommand=barra.set) barra.config(command=griglia.yview) ovale = griglia.create_oval(600, 10, 800, 1000, fill = 'black') testo = griglia.create_text(20,10, text = 'griglia') griglia.pack() barra.pack(side=tk.RIGHT, fill=tk.Y) quadro.pack() finestra.mainloop() La Scrollbar funziona correttamente! Ora aggiungo la definizione di un Frame nel Canvas. Il Canvas scompare e sembra del tutto inutile. La Scrollbar non ha più alcun effetto. Commetto qualche errore? Non posso controllare con una Scrollbar l'intera finestra? import tkinter as tk finestra = tk.Tk() quadro = tk.Frame(finestra, width=800, height=600) barra = tk.Scrollbar(finestra, orient=tk.VERTICAL) griglia = tk.Canvas(quadro, width=800, height=600, scrollregion=(0, 0, 800, 1200)) griglia.config(yscrollcommand=barra.set) barra.config(command=griglia.yview) ovale = griglia.create_oval(600, 10, 800, 1000, fill = 'black') testo = griglia.create_text(20,10, text = 'griglia') griglia.pack() barra.pack(side=tk.RIGHT, fill=tk.Y) quadro.pack() riquadro0 = tk.Frame(griglia, width=20, height=60) riquadro0.pack(side=tk.RIGHT) finestra.mainloop() |
|
Scritto da marcello |
2017-09-24 23:17:52 - Re: barra di scorrimento - soluzione: create_windows
|
il Frame non va inserito con pack() nel Canvas, ma tramite create_window().
Errore da principiante! |
Pagina: 1
Esegui il login per scrivere una risposta.