Я создаю тест в Tkinter и в настоящее время работаю над фреймом для отображения записей из базы данных SQLite, которые я хотел бы показать в формате таблицы. Я уже создал группу меток, которые будут действовать как моя «таблица», но не смог успешно реализовать полосу прокрутки.
Я понимаю, что полоса прокрутки не работает непосредственно с рамкой, и мне нужно создать холст и прикрепить к нему все виджеты. Я попытался проработать некоторые решения, представленные на форуме, но не могу должным образом интегрировать их с моим собственным кодом. В настоящий момент созданная мной полоса прокрутки не работает.
class Progress(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.___init__(self, parent)
frametwo = Frame(self) #creates a secondary frame for the canvas?
frametwo.grid(row = 2, column = 0)
#attempts to create a functional scroll bar
text_area = tk.Canvas(frametwo)
vscroll = tk.Scrollbar(text_area, orient="vertical", command = text_area.yview)
text_area['yscrollcommand'] = vscroll.set
text_area.grid(row=2, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
vscroll.grid(row=2, column=6, sticky="nsew")
text_area.configure(scrollregion = text_area.bbox("all"))
#creates the label widgets
self._widgets = []; columns = 6
for row in range(0,11):
current_row = []
for column in range(columns):
label = tk.Label(text_area, text="%s/%s" % (row, column),
borderwidth=0, width=10, height =2 )
label.config(bg = "White", font=("Calibri bold", 20))
label.grid(row =(row+2), column=column, sticky="nsew", padx=1, pady=1)
current_row.append(label)
self._widgets.append(current_row)
for column in range(columns):
self.grid_columnconfigure(column, weight=1)
Извините, если код неясен / неэффективен, я очень начинающий, использующий tkinter! Приведенный выше код выводит мои метки так, как я хочу, и размещает рядом с ними полосу прокрутки, но она не имеет никакой функциональности и не будет отображать оставшиеся виджеты. Я уверен, что я сделал основную ошибку или пропустил некоторый код. Как бы я исправить это?