Я хочу создать полосу прокрутки, создав рамку в виджете холста, но панель не отображается - PullRequest
0 голосов
/ 23 декабря 2018

Согласно некоторым ответам в Переполнении стека, я создаю полосу прокрутки, создавая холст и вставляя рамку в холст, но после этого я могу только щелкнуть стрелка на полосе прокрутки, чтобы прокрутить окно,но панель не отображается, что бы я ни уменьшал окно или создавал много виджетов в рамке.

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)

enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...