2013-06-08 25 views
5

私は、Tkinterをウィンドウマネージャとして使うPython 3.3プロジェクトに取り組んでいます。私は、マウスのスクロールホイールイベントをキャンバスに設定しました。スクロールは、Windows 7、8、およびUbuntuのではなく、Mac OS Xのマウンテンライオンでマジックマウスでスクロールすると動作しますが、プログラムは、TkのメインループでTEH次のエラーでクラッシュ:TkinterとPythonを使ったMac OS Xでの慣性スクロール

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を更新する必要がありますか?

答えて

1

これは、hereの問題のようです。 Python.orgの64-bit/32-bitインストーラーを3.3(現在は3.3.2)で使用している場合は、最新のActiveTclリリース(現在は8.5.13)もインストール済みであることを確認してください(here)。

+0

これは問題を解決するために表示されません。バグが再導入された可能性はありますか? – dougalg

+0

ActiveTcl 8.5.15をインストールしましたか? –

+1

私はただ問題を解決しました。問題は私がHomebrewから持っていたPythonのバージョンにあります。公式のpython3リリースをインストールした後、正常に動作しました。 – dougalg

2

これらのエラーをキャッチすることができます。

​​

これはさえ慣性スクロール、完璧に動作しているようですし、任意のインストール/アップグレードする必要はありません。

1

Neptune798、うまくいくはずです。どうやら、ActiveTcl 8.6ではこのバグが再現されています。 Python 3.4.4,3.5.4,3.6.2で同じ問題をテストしたので、間違いなくTkのバグです。それらのすべては、内に設置のTcl/Tkのライブラリを使用して報告:

**/System**/Library/Frameworks/Tcl.framework/Versions/8.5/ 

私は、具体的たActiveTcl 8.6.6でこのバグに遭遇し、8.5.18.0にダウングレードした後、それが去っていきました。 Pythonはダウングレード後に使用していたものを確認し、それが報告された:彼らはもはや、ダウンロード用の古いリリースを提供していませんが、それは、今ちょうど/ライブラリではない/システム/ライブラリ

をたActiveTclを見つけることだ

>>> import tkinter 
>>> root = tkinter.Tk() 
>>> print(root.tk.exprstring('$tcl_library')) 
/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts 
>>> print(root.tk.exprstring('$tk_library')) 
/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts 

お知らせを、私はまだ動作する古いリンクを見つけることができましたhere

関連する問題