【摘要】
通过tkinter,python。我在Canvas上设置了滚动条...然后成功了。
但是滚动条中缺少旋钮。
【背景】
这是我现在正在开发的应用程序。
应用程序的目的很简单。从目标URL中获取一些图标,然后将其作为平铺放置在Window中。
如您所见,无法将所有图标设置为初始窗口大小。
所以我想使用滚动条,然后向下滚动以显示以下图标。
现在成功地将滚动条放在右侧。但是在那个酒吧缺少旋钮(拇指)。
所以这不能用作滚动条(TωT)
【问题】
如何使此垂直滚动条的代码正常工作?
这是我的src文件中的滚动条构建部分。
滚动条已经存在,差不多可以了,但是也许遗漏了一些东西。
# Make vertical scrollbar to see all stickers -----------------------
outCV = tk.Canvas(self.iconsFrame, width=GUIController.__windowWidth, height=GUIController.__windowHeight)
scrollbar = tk.Scrollbar(self.iconsFrame, orient=tk.VERTICAL)
scrollbar.config(command=outCV.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
outCV.configure(yscrollcommand=scrollbar.set)
outCV.pack()
# --------------------------------------------------------------------
gridRow = 0
gridCol = 0
for i, tkimg in enumerate(self.tkimgs) :
# Put icons as tile.
请告诉我您的知识。
(FYI)https://github.com/we-yu/L_SL/blob/develop/Canvas_in_Canvas/src/GUICtrl.py行:196
答案 0 :(得分:0)
我已经找到了自己解决问题的方法。 我的情况有2分。
scrollregion
解决方式
self.outerCV = tk.Canvas(self.iconsFrame, width=GUIController.__windowWidth, height=GUIController.__windowHeight)
scrollbar = tk.Scrollbar(self.iconsFrame, orient=tk.VERTICAL)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
scrollbar.config(command=self.outerCV.yview)
self.outerCV.config(scrollregion=(0, 0, 2000, 2000), yscrollcommand=scrollbar.set)
self.outerCV.pack(fill=tk.BOTH)
galleryFrame = tk.Frame(self.outerCV)
self.galleryTag = self.outerCV.create_window((0, 0), window=galleryFrame, anchor=tk.NW, width=self.outerCV.cget('width'))
在窗口底部放置地下室框架。然后在上面放上画布。滚动条附加在此画布上。 但是,如果将Canvas放在此Canvas上,则Scrollbar可以滚动,但是window无法使用。 因此,将框架放在滚动条画布上。然后在该框架上放置主图形画布。
[Canvas-1][Canvas-2][Canvas-3]...
[Frame for gallery]
[Canvas for Scrollbar]
[Basement frame]