【发布时间】:2017-01-29 07:25:19
【问题描述】:
最近,我使用tkinter TreeView 来显示Python 中的许多列。具体来说,树视图中有 49 列数据。我使用grid 来管理我的小部件。
我发现树视图的宽度只取决于列的宽度。
我的问题是,如何设置 Treeview 的宽度。 (默认宽度是所有列的宽度之和)
这是我的主要代码:
frame = Frame(self.master, width = 1845, height = 670)
frame.place(x = 20, y = 310)
tree_view = Treeview(frame, height = 33, selectmode = "extended")
for i in range(len(id_list)):
tree_view.column(id_list[i], width = width_list[i], anchor = CENTER)
tree_view.heading(id_list[i] , text = text_list[i])
tree_view["show"] = "headings"
# Omit the declaration of scrollbar
tree_view['yscroll'] = self.y_scollbar.set
tree_view['xscroll'] = self.x_scollbar.set
tree_view.grid(row = 0, column = 0, sticky = NSEW)
for item in detail_info_list:
tree_view.insert("",0, text = str(item.id), value=(...))
id_list,width_list,text_list用于存储列信息。
detail_info_list 是存储Treeview中显示的数据。
我的目标是当我定义某个列的大宽度(例如:3000)时,我的树视图可以按我的预期显示数据。但是树视图在我的屏幕上,水平滚动条也不能滑动。
我看不到我的按钮,也无法滑动水平滚动条。
另外,我已经尝试了一些解决方案。
- 定义一个框架作为 Treeview 父级。并定义宽度和高度来约束 Treeview。但它不起作用。
- 我查阅了一些文档并搜索了这个问题。我没有找到任何将宽度设置为常数的解决方案。
【问题讨论】:
-
如果列数和它们的宽度是固定的(它定义了 Treeview 的宽度),究竟是什么问题?
-
请张贴代码,并告诉您想要的结果是什么。那么答案可以是具体的。
-
你能发布完整的(工作)代码吗?
-
我添加了关于 Treeview @JacobVlijm 的主要代码