1

に表示する Project オブジェクトのリストがありますGtkTreeView。ユーザーが TreeView のアイテムの行をダブルクリックしたときに、プロジェクトの詳細を含むダイアログを開こうとしています。

現在、選択した値を TreeView (プロジェクトの名前) から を介して取得し、get_selection()そのプロジェクトを自分のリストで名前で検索して、選択内容を自分のモデルと関連付けます。

しかし、これはあまり適切ではなく (さらに、プロジェクトの名前は一意であると想定されています)、もっとエレガントな方法があるかどうか疑問に思っていました。

4

2 に答える 2

1

私がやったことは、 gtk.ListStore を拡張してカスタムリストを使用することでした。また、append() メソッドをハイジャックして、[str、str など] を ListStore に追加するだけでなく、ListStore を拡張するクラスのカスタム リスト プロパティ内の実際のモデルも追加するようにしました。

次に、ユーザーが行をダブルクリックすると、ListStore 内の行のインデックスによって要求されたモデルを取得します。これは、カスタム リスト内のモデルのインデックスに対応します。

于 2010-06-16T20:02:28.127 に答える
1

デフォルトのモデルではありません。バックエンドとプレゼンテーションで同じオブジェクトを使用するために特別に作成されたPy-gtktree モデルを使用してみることができます。

ちなみに、そのドキュメントでは、これを標準モデルで (つまり、Py-gtktree をまったく使用せずに) 機能させる別の方法を概説していますが、私はそれをエレガントとは呼びません。

于 2010-06-13T16:17:12.070 に答える