Tôi đang cố gắng tạo canvas có thể cuộn. Tuy nhiên, một khi tôi cố gắng thiết lập thanh cuộn để làm việc với canvas, tkinter dường như hoàn toàn bỏ qua các kích thước ban đầu tôi đặt cho canvas của mình. Tôi đã thử đóng gói tất cả chúng trong một khung, thiết lập khung hình để lấp đầy khung và sau đó thiết lập kích thước khung hình, nhưng điều đó trình bày cùng một vấn đề trừ khi tôi đặt khung để lấp đầy cửa sổ, đó không phải là thứ tôi muốn . Về cơ bản, tôi muốn có một canvas có kích thước cố định với các thanh cuộn trên đó. mã hiện tại của tôi trông như thế này (trong python 3.1):python và tkinter: sử dụng thanh cuộn trên canvas
from tkinter import *
root=Tk()
frame=Frame(root,width=300,height=300)
frame.grid(row=0,column=0)
canvas=Canvas(frame,bg='#FFFFFF',width=300,height=300,scrollregion=(0,0,500,500))
hbar=Scrollbar(canvas,orient=HORIZONTAL)
hbar.pack(side=BOTTOM,fill=X)
hbar.config(command=canvas.xview)
vbar=Scrollbar(canvas,orient=VERTICAL)
vbar.pack(side=RIGHT,fill=Y)
vbar.config(command=canvas.yview)
canvas.config(width=300,height=300)
canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set)
canvas.pack(side=LEFT,expand=True,fill=BOTH)
root.mainloop()
Tại sao chúng ta phải đóng gói canvas cuối cùng? Tôi đã nhận thấy rằng khi tôi gói canvas trước khi bất kỳ thanh cuộn nào kết thúc chồng chéo thanh cuộn ngang - tôi chỉ mới bắt đầu sử dụng tkinter, nhưng tôi nghĩ rằng gói đó sẽ không chồng chéo lên nhau. Cảm ơn – Lanfear
Và cốt lõi là 'scrollregion = (0,0,500,500)', mà không có toàn bộ nó không thể hoạt động !! – Turtle