self.tk.call(self._w, 'yview', 'scroll', number, what) _tkinter.TclError: expected integer but got "-1.0"
时间: 2024-11-05 19:31:01 浏览: 16
GGUUII.zip_Tkinter_interface_tkinter interface
当你看到错误信息`_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`方法的参数都是一个有效的整数。
阅读全文