SSブログ

Python3 の tkinter [Python]

Python に標準で入っている GUI ツールキットということで便利な tkinter

以前、画像ファイルを表示するスクリプトを書いた
https://gist.github.com/nakagami/3764702
Pillow の力によって、アニメーション gif の画像を一コマづづ表示できる。

Python3 になって、(モジュール名など)色々変わったのにネットでは、古い Python2.7 の時のサンプルコードばかりで、残念だなと思っていた。
趣味で tkinter のコードを書こうかなと思っているのだが、まず、やりたいことができるか検証コードを書いた。

発生するイベント情報を print して、 マウスクリックした位置に赤い円を描画するスクリプト
https://gist.github.com/nakagami/b93521c7c369b4986e967f5fdeef1690

twisted で、tkinter のイベントを扱う例
https://gist.github.com/nakagami/2d58fac16c03fd5dab8608d81a8826ad
Python2.7 での example を書き換えたら Python3 でも動いてるっぽい。
終了できなかったが、ここの質問を見て https://stackoverflow.com/questions/71281691/cannot-stop-twisted-reactor-when-calling-reactor-stop
os._exit(0) で終了するようにできた。しかし、ちょっと乱暴なので気に入らない。もっと良い方法はないものだろうか。

自分の macOS の環境では、 Canvas に描画しても表示できなかったが、結局 brew で install していた Python3.11 をアンインストールして、公式インストーラー https://www.python.org/downloads/macos/ の Python3.12 をインストールしたら描画できるようになった。
Python のバージョンの問題ではなく brew の python の tk サポートに問題があるっぽい。
brew の Python も、そのうち直るかも。
コメント(0) 
共通テーマ:日記・雑感

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント