Как использовать несколько кадров на холсте с полосой прокрутки в Tkinter? - PullRequest
0 голосов
/ 27 июня 2019

Я создаю приложение с графическим интерфейсом для отображения результатов некоторых данных. Я хочу показать имя и некоторые детали в рамке для каждого полученного результата. Поэтому я создал рамку и холст внутри нее. Теперь я хочу разместить несколько кадры на холсте с полосами прокрутки, но, похоже, это не сработало. Итак, я попытался разместить результаты на нескольких холстах, но он также не работает с полосой прокрутки. Вот его фрагмент.

from tkinter import *

class Results:
    def __init__(self,master,topic = None):
        self.result_frame = Frame(master, bg = '#ffffff', bd =5)
        self.result_frame.place(relx=0.5,rely=0.25, relwidth = 1,relheight = 
        0.75, anchor ='n')

        self.canvas = Canvas(self.result_frame,bg = 
        '#ffffff',bd=0,width=500,height=500)
        self.canvas.place(relx = 0.0, rely = 0.0 )

        self.sbar = Scrollbar(self.result_frame, orient = 'vertical')
        self.sbar.config(command = self.canvas.yview)
        self.sbar.place(relx = 0.98,width = 14 ,relheight = 0.5 )

        self.canvas.configure(yscrollcommand=self.sbar.set)

        self.rframe = Frame(self.canvas)
        self.rframe.pack()

        self.canvas.create_window((0,0), window=self.rframe, anchor="nw")
        self.show_results()

    def create_rcanvas(self,name,y) :
        name = Canvas(self.rframe, bg = '#4da6ff')
        name.place(relx=0.25,rely = y, relwidth = 0.55,height = 100)


    def show_results(self):
        y = 0.1
        for i in range(0,10):
            name = 'can'+str(i)
            name = Canvas(self.canvas, bg = '#4da6ff')
            name.place(relx=0.25,rely = y, relwidth = 0.55,height = 100)
            y = y + 0.2
if __name__ == '__main__':
    root = Tk()
    root.geometry('600x600')
    Results(root)
    root.mainloop()

Пожалуйста, предоставьте мне решение и попробуйте сначала запустить его и проверить.

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