Обновление: Я закончил тем, что переключился на использование Treeview для этого, поскольку он поддерживает полосу прокрутки, и он намного чище отображает мою таблицу.
У меня есть приложение, которое вводит метки из файла для построениястол'.Я хотел добавить полосу прокрутки, но мне было трудно это сделать.Я немного работал, но он не был правильно ориентирован, и вы могли видеть только половину таблицы.Я добавил .grid, чтобы растянуть рамку, но теперь, когда я рисую таблицу, она выходит за пределы экрана, а полоса прокрутки просто рисуется сбоку виджета - она никуда не прокручивается.
Вотчасть класса, которая рисует таблицу:
def tabledraw(self):
self.table_values = Canvas(window1, borderwidth=5)
#self.table_values.configure(scrollregion=[0,0,970,600])
self.frame = Frame(self.table_values)
self.vsb = Scrollbar(window1, orient="vertical", command=self.table_values.yview)
self.table_values.configure(yscrollcommand=self.vsb.set)
self.vsb.grid(row=3, column=2, sticky=N+S+E)
self.table_values.grid(row=3, columnspan=3, padx=20, pady=20)
self.table_values.create_window((4,4), window=self.frame, anchor="nw", tags="self.frame")
self.frame.grid(columnspan=3, sticky=E+W)
self.frame.bind("<Configure>", self.onFrameConfigure)
with open('table_co.pkl', 'rb') as infile:
table = pickle.load(infile)
for i in range(self.height):
for j in range(self.width):
self.b = Entry(self.frame, text="", width=30)
self.b.grid(row=i, column=j)
self.b.insert(0, str(table[i][j]))
def onFrameConfigure(self, event):
#self.table_values.config(scrollregion=[0,0,970,200])
self.table_values.configure(scrollregion=self.table_values.bbox("all"))
Я попытался присвоить статическое значение области прокрутки холста, но, похоже, она не изменилась.
Я новичок вpython, так что если я делаю что-то не так, дайте мне знать.