Mục tiêu của tôi là thêm thanh cuộn dọc vào một khung có một số nhãn trong đó. Thanh cuộn sẽ tự động được kích hoạt ngay sau khi các nhãn trong khung vượt quá chiều cao của khung. Sau khi tìm kiếm, tôi đã tìm thấy this bài đăng hữu ích. Dựa trên bài viết đó tôi hiểu rằng để đạt được những gì tôi muốn, (đúng tôi nếu tôi sai, tôi là người mới bắt đầu), tôi phải tạo một Frame trước, sau đó tạo Canvas bên trong khung đó và dán thanh cuộn vào đó cũng vậy. Sau đó, tạo một khung khác và đặt nó bên trong khung làm đối tượng cửa sổ. Vì vậy, cuối cùng tôi đưa ra với điều nàyThanh cuộn Tkinter của Python cho khung
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()
- Am Tôi làm việc đó phải không? Có cách nào tốt hơn/thông minh hơn để đạt được đầu ra mã này đã cho tôi?
- Tại sao tôi phải sử dụng phương pháp lưới? (Tôi đã thử phương pháp địa điểm, nhưng không có nhãn nào xuất hiện trên canvas.)
- Điều gì đặc biệt về việc sử dụng anchor = 'nw' khi tạo cửa sổ trên canvas?
Hãy giữ câu trả lời của bạn đơn giản như tôi mới bắt đầu. Cảm ơn bạn đã giúp đỡ.
Bạn có nó ngược trong câu hỏi của bạn, mặc dù các mã có vẻ đúng ở cái nhìn đầu tiên. Bạn phải tạo một khung, nhúng vào khung hình, sau đó đính kèm thanh cuộn vào khung vẽ. –
bản sao có thể có của [Thêm thanh cuộn vào lưới ô của các tiện ích trong Tkinter] (http://stackoverflow.com/questions/3085696/adding-a-scrollbar-to-a-grid-of-widgets-in-tkinter) –
@TrevorBoydSmith Có rất nhiều thứ này là một bản sao tiềm năng, nhưng tôi đã bỏ phiếu để đóng bản sao này dưới dạng bản sao của một số khác có vẻ như có câu trả lời hay nhất: http://stackoverflow.com/questions/1873575/how-could -i-get-a-frame-with-a-scrollbar-in-tkinter – ArtOfWarfare