我正在开发一个使用 Tkinter 作为窗口管理器的 Python 3.3 项目。我为画布设置了鼠标滚轮事件。滚动在 Windows 7、8 和 Ubuntu 中有效,但在 Mac OS X Mountain Lion 中使用 Magic Mouse 滚动时,程序崩溃并在 Tk 主循环中出现以下错误:
File "/Users/xxxx/Documents/Repositories/tycoon/agentsim.py", line 291, in start
self._root.mainloop()
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 1038, in mainloop
self.tk.mainloop(n)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 0: invalid continuation byte
我的代码是:
self._hscroll.configure( command=self._canvas.xview )
self._vscroll.configure( command=self._canvas.yview )
self._canvas.bind('<MouseWheel>', lambda event: self.rollWheel(event))
其中 hscroll 和 vscroll 是表单中的滚动条对象。
如果我使用普通鼠标,则不会出现此问题。当我尝试使用触控板滚动时也会发生这种情况(打开惯性滚动)
我是否必须更新 Tk 才能使此功能正常工作,还是一般情况下它只是损坏了?