滚动条显示在放置的位置,但已被禁用并且没有显示其他内容。
class foo():
def __init__(self, vista, *args, **kwargs):
super().__init__()
self.vista= vista # a tkinter root
self.frame= Tk.Frame(self.vista)
self.ground= Tk.Canvas(self.frame)
self.board= Tk.Canvas(self.ground)
self.frame.grid()
self.ground.grid()
self.board.grid()
self.label= Label(self.ground, text= "title")
self.label.grid(row= 0, sticky= 'new', columnspan= 2)
self.scrollbar= Scrollbar(self.ground, orient= "vertical", command= self.board.yview)
self.board.configure(yscrollcommand= self.scrollbar.set, scrollregion= self.board.bbox("all"))
self.scrollbar.grid(row= 1, column= 1, sticky= 'nse')
...
...
...
for self.topic in self.data: # an HTML element, can be thought of as a long list
self.header= self.topic.attrib['title'] #
self.imagePath= self.topic.attrib['icon'] # an image with 110x110 dimensions
self.image= PhotoImage(file= self.imagePath)
self.menuButton= Button(self.board, text= self.header,
image= self.image
self.menuButton.grid(row= self.r, column= self.c%3, sticky= "nsew")
if self.c % 3 == 2: # increment row if column is divisible by 3
self.r= self.r+1
self.c= self.c+1
此处省略的各种按钮和小部件在代码中进一步网格化,导致需要将窗口扩展到屏幕之外,因此需要使用滚动条。但是,滚动条显示为灰色,即使绑定到画布,框架也不会滚动。
为按钮提供了110x110像素的图像,这些图像堆叠在“板”的屏幕之外。 “板”本身与“滚动条”一起网格化为“地面”。