python - 我想通过在画布小部件中创建一个框架来创建一个滚动条,但该条不显示
问题描述
根据Stack Overflow中的一些答案,我通过创建画布并将框架嵌入画布来创建滚动条,但是在这样做之后,我只能单击滚动条中的箭头来滚动窗口,但条不显示,无论我缩小窗口还是在框架中创建许多小部件。
class Basic_frame:
def __init__(self):
root.unbind('<Configure>')
self.frame_canvas = Canvas(
root, width=i_window_width, height=i_window_height, bg='red')
self.window_frame = Frame(
self.frame_canvas)
self.xscrollbar = Scrollbar(
self.frame_canvas, orient='horizontal', command=self.frame_canvas.xview)
self.yscrollbar = Scrollbar(
self.frame_canvas, orient='vertical', command=self.frame_canvas.yview)
self.frame_canvas.configure(yscrollcommand=self.yscrollbar.set)
self.frame_canvas.configure(xscrollcommand=self.xscrollbar.set)
self.frame_canvas.xview_moveto(0)
self.frame_canvas.yview_moveto(0)
self.yscrollbar.pack(side='right', fill='y')
self.xscrollbar.pack(side='bottom', fill='x')
self.frame_canvas.create_window(
(0, 0), window=self.window_frame, anchor='nw')
# self.window_frame.bind('<Configure>', self.scroll_function)
self.frame_canvas.pack(side=LEFT, fill=BOTH, expand=TRUE)
self.frame_canvas.bind('<Configure>', self.resize)
self.window_frame.bind('<Configure>', self.frame_size)
def frame_size(self, event):
size = (root.winfo_reqwidth(), root.winfo_reqheight())
self.frame_canvas.config(scrollregion=(0, 0, 100, 100))
# self.frame_canvas.configure(scrollregion=self.window_frame.bbox('all'))
self.frame_canvas.config(width=event.width, height=event.height)
解决方案
推荐阅读
- apache-kafka - Kafka消费者消息提交问题
- css - Angular Material & Flex:如何为整个应用设置最大宽度?
- reactjs - Redux 选择器或效果器
- java - CompoundIndexes 注释在 MongoDB 和 Spring 中不起作用
- azure - 将事件从 Azure 事件中心传送到 Azure 服务总线
- javascript - 如何通过单击表格行来检查单选按钮?
- python - 如何制作分类列计数子集的条形图?
- mongodb - 当其中一个字段位于子文档数组中时,如何从集合中获取两个字段的不同组合
- javascript - 有没有办法使用javascript在cookie中存储hrefs
- arrays - 使用 OpenMP 如何在 Fortran 中跨数组应用函数?