2019年3月6日水曜日

PyGObject、ListBoxの扱い方


わからなくて丸一日悩んだ
Qtの時もそうだった
ListBoxって見た目も単純で私は大好きなんだけどあまり人気ないのかな??

そもそも本家にチュートが無いのが大不満だったけど、ありました(・∀・)ノ
個別のwidgetではなくて、コンテナ扱い
っていうか、PyGObjectのListBoxはコンテナなんだな
Gladeの左側のカテゴリを見て気がつきました

ListBoxに文字列を追加するには、まずラベルを作って文字を設定して、そのラベルをListBoxRowに格納して、それをListBoxに加える、最後にshow、これしないと見えない
めんどくさい(ノ゚o゚)ノ
チュートだとListBoxRowの派生クラスを作って、そこでデータの追加と取得を出来るようにしてる
それを見ながら派生クラス抜きで書いてみたら、データの追加は簡単だけど取得が難しいことに気づいた
段階を踏んで追加してるから、取得もそれをさかのぼるようにしなければいけない
クリックしたrowはシグナルでもらえるけど、そのrowにセットしたlabelの取得の仕方がわからないので、ラベルの文字列取得まで行かない
そういう意味ではチュートの派生クラスはすごく良く考えられてるなあと思いました

しかしQtにしてもPygにしてもListBoxが複雑すぎる
win32apiのListBoxはもっと単純、データの追加・挿入・取得など、すごく簡単に出来ます
その感覚で手軽に使いたいのになあ・・・
PygのListBoxはコンテナなので、テキストだけで無くボタンも配置出来ます
テキストのリストを使いたいだけなら、テキスト系のwidgetを使えって事なのかな??

0 件のコメント:

コメントを投稿