gpt4 book ai didi

python - 使用 Tkinter 和 Python 在 Mac OS X 中进行惯性滚动

转载 作者:太空狗 更新时间:2023-10-29 17:48:11 26 4
gpt4 key购买 nike

我正在开发一个使用 Tkinter 作为窗口管理器的 Python 3.3 项目。我为 Canvas 设置了鼠标滚轮事件。滚动在 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 才能使此功能正常工作,还是它通常会损坏?

最佳答案

可以捕获这些错误:

while True:
try:
root.mainloop()
break
except UnicodeDecodeError:
pass

这似乎工作得很好,甚至可以惯性滚动,并且不需要任何安装/升级。

关于python - 使用 Tkinter 和 Python 在 Mac OS X 中进行惯性滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16995969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com