« Return to Thread: [ruby-dev:38323] [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合

[ruby-dev:38323] [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合

by oshida :: Rate this Message:

Reply to Author | View in Thread

押田です。

最近の(?) Ruby/Tk に関してご教示賜りたくメールしました。
用例としては結構ニッチだろうと自負しています(^^;


Ruby/Tk の famous extention サポート標準化により、
オリジナル Tk に存在しない widget に関しては
標準で extention 側のファイルを require するよう autoload 登録されます。
それら extention が存在しない環境にて、
例えば TkCombobox だけを自前実装して使いたい場合、
この autoload が働いて存在しないファイルを読みにいってしまい、
TkPackage にて RuntimeError 終了してしまいます。

「sample/tkcombobox.rb が動かなくなっています」
という表現の方がシンプルで良いかも知れません。

もし、tk/ttk_selector.rb の
"Ttk is a standard library on Tcl/Tk8.5+"
が 8.4 サポートの terminate を意味しないのであれば、
autoload 登録を見合せていただければありがたいです。


また、ひとまず手元では、

Object.const_set(:TkCombobox, Class.new(XXX))
class TkCombobox < XXX

とすることで autoload を無効化しています。

より適切な解法があればお教え下さい。


宜しくお願いします。

 « Return to Thread: [ruby-dev:38323] [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合