Gladeとカスタムウィジェット

今は一旦ある程度動いているソースをバラして書き直しているところです。というのも、これまでGladeでGUIデザインをする際にカスタムウィジェットというのを使えることを知らず、デフォルトのGtkウィジェットしか使えないようだからと仕方なくそれらを張り付けて使っていたのです。そのためGtkTreeViewのイベントハンドラにごちゃごちゃ処理を書いたりしてわかりにくいソースになっているのです。まるでVBでもやってるかのような(そしてDelphiでも入門時にはやってしまいがちな)ダサダサな手法です。しかし今回カスタムウィジェットを知ったので、GtkTreeViewを継承した独自のTreeViewクラスを用意し、Glade上ではカスタムウィジェットとして配置することでよりスマートにできるという目論見で書き直しているところです。

ところがこれが上手くいきません。多分カスタムウィジェットの使い方を理解していないだけだと思いますが、カスタムウィジェットgtk.Labelだと思い込んでいるようなエラーがでます。おそらくGlade上でカスタムウィジェットとして貼り付けられている実体がgtk.Labelということなのだと思います。一応理解しているつもりの手順としては、

という感じなのですが、今のところ

libglade-WARNING **: could not find widget creation function

AttributeError: 'gtk.Label' object has no attribute 'append_column'

と出ます。append_columnはTreeViewのメソッドなので、やはりカスタムウィジェットがTreeViewクラスであることを認識してないのだと思います。

今日はここまで。