python - Tkinter - 将多列添加到 Treeview
问题描述
我想在我的 Treeview 中添加三列,并将它们命名为“Varenavn”、“Antall”、“Best før”。我尝试了以下方法:
self.tree = ttk.Treeview (height = 10, columns = 3)
self.tree.grid (row = 4, column = 0, columnspan = 2)
self.tree.heading ('#0', text = 'Varenavn', anchor = W)
self.tree.heading ('#1', text = 'Antall', anchor = W)
self.tree.heading ('#2', text = 'Best før', anchor = W)
但我得到:
_tkinter.TclError: Column #2 out of range.
如果我将最后一段代码更改为:
self.tree.heading ('#1', text = 'Best før', anchor = W)
'Antall'
代码运行良好,但在'Best før'
第二列中 被覆盖。
任何想法将不胜感激!
解决方案
你给columns=
论点的价值没有做你期望它做的事情。
来自New Mexico Tech Tkinter 参考资料:
列
一系列列标识符字符串。这些字符串在内部用于标识小部件中的列。图标列,其标识符总是
'#0'
,包含折叠/展开图标,并且始终是第一列。您使用 columns 参数指定的列是图标列的补充。
例如,如果您指定,小部件中将出现三列:首先是图标列,然后是内部标识符为和
columns=('Name', 'Size')
的另外两列。'Name'
'Size'
因此,您应该给它一个要创建的列的名称元组,而不是一个数字,并且应该比您想要的总列数少一个,因为第一个总是'#0'
.
为了解释你得到的错误,当你使用columns = 3
它时,它会得到与使用相同的结果columns = ('3')
;您实际上只在列旁边创建一列'#0'
,可以通过'#1'
或标识'3'
。当您尝试访问列时'#2'
,您会收到超出范围的错误,因为只有两列。
推荐阅读
- python - 如何基于行创建 seaborn clustermap 并提取行标签?
- python - IndexError:创建均匀粒子时数组的索引过多
- dataframe - 如何在matplotlib中增加条形之间的空间并增加条形宽度
- environment-variables - 如何从 XCUITest 代码访问 xcconfig 变量
- python - 如何拆分混合值列?
- javascript - 未定义变量,nodejs,json到程序变量
- javascript - 如果图像 id 是显示块而不是无,则显示样式
- tor - /var/lib/tor 无法读取:权限被拒绝或无法创建私有数据目录
- mysql - 使用 puma + Nginx 在生产模式下部署时出现 Rails 数据库连接问题
- javascript - 滚动到 iframe 中的锚点