QuickIRのMacOS Xでの不具合が解消できました
やはりApple製のTcl/Tkが原因だったようです
現在、嫁さんが入院中。家事も食事も全部自分でやらなければならず、ホントはBLogなんか書いてる暇もないのですけど、まぁ少し息抜きってことで(^^;)
MacOS Xでの Tkinterのおかしな挙動ですが、色々とググッてみたところ、やはりApple製Tcl/Tkの問題らしいですね。よくよく調べてみれば、MacOS X用Python3の"ReadMe.rtf"にもIDLEで発生する不具合として書いてあるし、ほんとドキュメントには目を通さないとダメですねぇ。
これによると、ActiveTcl 8.5.18.0をインストールすると不具合が解消されるとのことで、早速やってみました。ついでに MacOS XにPython3を導入する手順として以下にまとめておきます。
- Mac OS XにPython3をインストールする
Mac OS X用のPython3を Python.orgからダウンロードしてインストールします。現時点での最新版は Python 3.5.0 でしたので、これをインストールします。
- ActiveTcl 8.5.18 をインストールする
ActiveStateのホームページからActiveTcl Ver.8.5.18をダウンロードします。ActiveTclの現時点での最新版はActiveTcl Ver.8.6.4.1 で、ホームページは、
このようになっており、ついつい最新版をダウンロードしてしまいそうになりますが、Python 3.5がまだ Ver.8.6系に対応していないので、新し物好きでも最新版をインストールしてはダメです。Ver.8.5.18(赤→)を選択してダウンロードします。
ダウンロードしたイメージファイルをダブルクリックしてマウントすると、
このような内容が表示されます。あとはインストールパッケージをダブルクリックしてインストールすれば良いのですが、その前に「システム環境設定」ー「セキュリティとプライバシー」で、「ダウンロードしたアプリケーションの実行許可」を「すべてのアプリケーションを許可」にしておく必要があります。後はインストーラが示すとおりにしていけばインストールが完了します。
Active Tcl 8.5.18 は "/Library/Frameworks/"配下に "Tcl.framework", "Tk.framework" フォルダを作成して、その配下にインストールされます。一方、Apple製Tcl/Tkは "/System/Library/Frameworks/"配下の "Tcl.framework", "Tk.framework" フォルダ内に配置されています。Mac OS X用Python 3.5は、"/Library/Frameworks/"配下のTcl/Tkがあれば、そちらを優先的にダイナミックリンクし、無い場合には"/System/Library/Frameworks/"配下の Tcl/Tkを使うように作成されているそうで、このカラクリのおかげでActive TclをインストールすればPython3が使用する Tcl/Tkが自動的に切り替わる仕組みになっています。
Active Tclを導入したことによって、QuickIRで起きていた不具合が完全にとは言えませんが解消されました。
先ず日本語入力ですが 、インライン変換という訳にはいきませんが、
このように入力できるようになりました。そして、メニューからGETダイアログを呼び出しても、正常に入力フィールドにフォーカスされ問題なく入力できるようになりました。
ただ、Dialogクラスを使って自分で作った GETダイアログと、Tkinter の messageboxにある既成のダイアログとでは、ちょっとだけボタンの大きさが違ってしまうようです。下が messagebox の showinfoダイアログ(QuickIRのAboutメッセージ)なのですが、
ボタンの高さが違いますよね。ちょっと気になるけど、まぁいっかぁ。
|