永井@知能.九工大です.

>>>>> "F" == Tadayoshi Funaba <tadf / kt.rim.or.jp> writes:
F> tkdialog はとても簡単にあつかえて便利なのですが、 ちょっと違うことをし
F> ようと思うと、もういけないですよね。そこで、ダイアログというに相応しい
F> ものを備えている、より一般的なウィンドウが提供されていたら、と考えたく
F> なります (というか、ちょっとだけ変ったウィンドウですか)。

今一つ具体的なイメージがわからないので,
「tkdialog って,ああいうものだから」と言うしかなさそうです.
もう少し具体的に示していただけると助かるのですが.

# 現在の tkdialog.rb は,オリジナルの dialog.tcl に比べ,
# フォント指定などができるようにはなってますが.

F> 話はかわって、フォントの話なのですが、1.1b の最後のあたりから、僕の tk
F> を利用したプログラムが急に遅くなったようでした。調べてみたら、フォント
F> の指示に理由があるようです。僕のプログラムはボタンがたくさんあって、そ
F> れぞれにいちいちフォント名の指定をしていたので、そうなったみたいです。
F> で、よくわからなかったのですが、 TkFont.new でフォントを用意して、それ
F> をフォント名に替えてつかうようにしたら解消したんですが、これは、こういっ
F> たつかいかたでいいのでしょうか。

はい.それで構いません.
なぜこういうことになったかと言いますと,
従来との互換性を保ちながら,
Tk4.x(jp) と Tk8.x(jp) とでフォントを扱うためのインターフェースを
統一しようとしたためです.
そのため,フォントをダイレクトに指定した場合,
その widget と対応付けられた TkFont クラスのオブジェクトが
存在していなければ,フォント指定に応じて新たな TkFont クラスの
オブジェクトを生成し,それを対応付けるような操作をしています.
多数のボタンのそれぞれにフォントを直接指定している場合,
ボタンごとに新たな TkFont クラスのオブジェクトを生成するために
遅くなってしまったのでしょう.
ですから,TkFont クラスのオブジェクトを生成して,
それを用いるようにしたことで解消したのだと思います.

ボタンのフォントを統一するなどの場合は,
先に TkFont クラスのオブジェクトを生成して,
それを font オプションに指定するのがよいと思います.
TkFont クラスを使っていただければ,Tk4.x(jp) であったとしても,
そのオブジェクトのフォントを操作するだけで,
その TkFont オブジェクトが割り付けられたすべての widget のフォントを
同時に変更することができるはずです.

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp