2015-02-08

[Tcl/Tk] フォントのサイズをピクセル数で求める

キャンバスにウィジェットなどを直接貼り付ける際に、フォントサイズを表すポイント数からピクセルへの変換が必要になります。

ポイント数はディスプレイの解像度が 72DPI のときには1:1になりますが、解像度が変わると計算方法が異なります。 このとき tk scaling を用いると、72DPI に対する実際の解像度の比率が取得できます。

例としてデフォルトフォントの高さをピクセルで求めるコードを示します。


set fontsize [font configure TkDefaultFont -size]
set scale [tk scaling]
set in_pixels [expr $scale * $fontsize]

2015-02-07

[Tcl/Tk] tDOM パッケージがインストールされない場合

ActiveTcl で tDOM などのパッケージを使う場合、環境によってインストールされない場合があるようです。 私の場合は、Windows 8.1-64Bit と Windows7-64bit では正しくインストールされましたが、Windows8.1-32bit では、何故かエラーが出ました。

インストールエラーに気付かずスクリプトを走らせると



can't find package tdom
while executing
"pakage require tdom"



となります。

この場合、パッケージのアップデートをするために、コマンドプロンプトから、次の3つのコマンドを入力するとパッケージが更新されます。



C:\Users\batir> cd \Tcl\bin

C:\Tcl\bin> teacup link make "c:/Tcl/lib/teapot" /Tcl/bin/tclsh.exe

C:\Tcl\bin> teacup update



各種パッケージがインストールされているメッセージが表示され、tDOM などが使用出来るようになります。