更新:我最终切换到使用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的新手,所以如果我做错了事,请告诉我。