我正在开发一个使用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才能使此功能正常工作,还是它本来就是有问题的?