Il mio obiettivo è aggiungere una barra di scorrimento verticale a una cornice con più etichette. La barra di scorrimento dovrebbe essere abilitata automaticamente non appena le etichette all'interno del fotogramma superano l'altezza del fotogramma. Dopo aver cercato attraverso, ho trovato il post utile this. Sulla base di quel post capisco che per ottenere ciò che voglio, (correggimi se sbaglio, sono un principiante) devo prima creare un Frame, quindi creare una Canvas all'interno di quella cornice e attaccare la barra di scorrimento a quella cornice pure. Successivamente, crea un altro frame e lo metti all'interno del canvas come oggetto window. Così, ho finalmente venire con questoPython Barra di scorrimento Tkinter per frame
from Tkinter import *
def data():
for i in range(50):
Label(frame,text=i).grid(row=i,column=0)
Label(frame,text="my text"+str(i)).grid(row=i,column=1)
Label(frame,text="..........").grid(row=i,column=2)
def myfunction(event):
canvas.configure(scrollregion=canvas.bbox("all"),width=200,height=200)
root=Tk()
sizex = 800
sizey = 600
posx = 100
posy = 100
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
myframe=Frame(root,relief=GROOVE,width=50,height=100,bd=1)
myframe.place(x=10,y=10)
canvas=Canvas(myframe)
frame=Frame(canvas)
myscrollbar=Scrollbar(myframe,orient="vertical",command=canvas.yview)
canvas.configure(yscrollcommand=myscrollbar.set)
myscrollbar.pack(side="right",fill="y")
canvas.pack(side="left")
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>",myfunction)
data()
root.mainloop()
- sto facendo la cosa giusta? C'è un modo migliore/più intelligente per ottenere l'output che questo codice mi ha dato?
- Perché devo utilizzare il metodo della griglia? (Ho provato il metodo place, ma nessuna delle etichette appare sul canvas.)
- Cosa c'è di così speciale nell'usare anchor = 'nw' quando si crea una finestra su tela?
Si prega di mantenere la risposta semplice come io sono un principiante. Grazie per l'aiuto.
Hai all'indietro nella sua interrogazione, se il codice è corretto a prima vista. È necessario creare una cornice, incorporarla nella tela, quindi collegare la barra di scorrimento alla tela. –
possibile duplicato di [Aggiunta di una barra di scorrimento a una griglia di widget in Tkinter] (http://stackoverflow.com/questions/3085696/adding-a-scrollbar-to-a-grid-of-widgets-in-tkinter) –
@TrevorBoydSmith C'è un sacco di cose questo è un potenziale duplicato di, ma ho votato per chiuderlo come duplicato di un altro che sembra avere le migliori risposte: http://stackoverflow.com/questions/1873575/how-could -i-get-a-frame-con-a-scrollbar-in-tkinter – ArtOfWarfare