環境
OSX 10.14.5
Homebrew 2.1.6
イントロ
画像処理プログラムを動かすオープンソースでマルチプラットフォームな簡易GUIを簡単に作成したかった。
候補にはopencvのhighguiをこねくるか、cvuiを入れるか、qtをお勉強するかだったが、パラメタのやり取りを外部のテキストファイルとやり取りしたい、でも学習コストはかけたくないとか考えるうちにtcl/tkを利用することにした。
shellscriptが得意なら、この選択肢はとてもいいはず。
WSL2の普及への期待からもshell言語は色々試すのは価値があるかもと。
もともとOSXにはtcltkが入っているが、どうせなら最新バージョンを入れるところから。
でも元気がなかったのでビルドはやめてHomebrewを使った。
(本当のところは、デフォルトで入っているtcl/tkさんは、表示がもっさりしていて、refleshかけないとbuttonのtextが表示されず、一度reinstallしたかったから)
現在のバージョン確認
% wish 
% info patchlevel
8.5.9
実はそんなに古くないらしい
(最新は8.6.9 2019/07/01現在)
Homebrewでのインストール
brew update
brew install tcl-tk
tcltkではなくtcl-tkとハイフン入りなのに注意
(良い子は事前に調べておきましょうね)
If you need to have tcl-tk first in your PATH run:
  echo 'setenv PATH /usr/local/opt/tcl-tk/bin:$PATH' >> ~/.tcshrc
For compilers to find tcl-tk you may need to set:
  setenv LDFLAGS -L/usr/local/opt/tcl-tk/lib;
  setenv CPPFLAGS -I/usr/local/opt/tcl-tk/include;
For pkg-config to find tcl-tk you may need to set:
  setenv PKG_CONFIG_PATH /usr/local/opt/tcl-tk/lib/pkgconfig;
==> Summary
🍺  /usr/local/Cellar/tcl-tk/8.6.9: 2,983 files, 50.1MB
と言われるので、自前でパスを通しましょう(次節)
tclshとwishのパスの整理
実行ファイル
もともと通っているものはwhich wish、which tclshとls -lで調べておく。
なお私のデフォルトシェルはtcshです。
% ls -l `which tclsh wish`
lrwxr-xr-x /usr/bin/tclsh -> tclsh8.5
lrwxr-xr-x /usr/bin/wish -> wish8.5
tclsh8.5、wish8.5にリンクされているだけのようなので、削除して~/.tcshrcにbrewが教えてくれたパスを書き込んでパスの再読み込み(source ~/.tcshrc)しておく。
ライブラリパス
pkg-config用に通しておく。C++でプログラミングしない人は無視していい。
デモスクリプトの確認
widget Demoを見てみる。
まず、info patchevelでバージョン確認。
% wish
% info patchlevel
8.6.9
出てきているwishのwindowから、ファイルメニューでFile>Run Widget Demo
無事に表示されればOK。
Demoを見ているだけでも楽しいですね。
参考
[Homebrew] (https://formulae.brew.sh/formula/tcl-tk)