_tkinter.TclError: expected integer but got "end"
时间: 2023-12-28 20:05:39 浏览: 350
抱歉,我之前的回答有误。`tkinter.END`是用来设置文本框或者文本域的文本末尾位置的,不能用于设置表格列的宽度。正确的做法是使用`tree.column(col, width="")`方法,其中`col`为列名,`width`为列宽,可以设置为一个整数或者空字符串。如果设置为空字符串,则表示让表格根据内容自适应调整列宽。下面是修改后的代码:
```python
for col in columns1:
treeview1.heading(col, text=col)
treeview1.column(col, width="", anchor="center")
for col in columns2:
treeview2.heading(col, text=col)
treeview2.column(col, width="", anchor="center")
```
这样就可以根据内容自动调整列宽了。如果你想设置一个固定的列宽,可以将`width`设置成一个整数。
相关问题
_tkinter.TclError: expected floating-point number but got ""
这个错误通常是因为你在使用Tkinter的时候,输入的参数不是浮点数。请检查你输入的参数是否正确,并且没有输入空字符串。你可以尝试使用try-except语句来捕获这个错误并进行处理。以下是一个例子:
```
import tkinter as tk
try:
num = float(some_input)
except tk.TclError:
# 处理错误的代码
```
在这个例子中,如果some_input不是浮点数,就会抛出_tkinter.TclError,我们可以通过try-except语句来捕获它并进行处理。
self.tk.call(self._w, 'yview', 'scroll', number, what) _tkinter.TclError: expected integer but got "-1.0"
当你看到错误信息`_tkinter.TclError: expected integer but got "-1.0"`,这意味着Tkinter期望一个整数值,但在尝试调用`self.tk.call(self._w, 'yview', 'scroll', number, what)`时接收到的是字符串"-1.0"或者一个小数。`yview scroll`方法用于在Y方向上滚动控件,`number`参数通常代表滚动步长,它应该是整数表示的像素值。
解决这个问题,你需要确保`number`参数是一个整数,而不是小数或者字符串形式的数字。如果`what`参数是用来选择滚动的方向(默认为`units`),那就无需担心,因为它可以接受字符串`units`或`pages`等。
如果你是从用户输入或者其他动态计算得到的小数值,需要将其转换为整数。例如,如果你之前从`event.delta`获取了鼠标滚轮的滚动步长,它可能是负数,你应该做类似这样的转换:
```python
# 假设event.delta是一个浮点数
scroll_amount = int(event.delta / 120) # 每次滚动的步长
self.tk.call(self._w, 'yview', 'scroll', scroll_amount, 'units')
```
确保每次滚动时,传递给`scroll`方法的参数都是一个有效的整数。
阅读全文