3

IconViewのテキスト要素用のカスタムCellRendererTextを持つGtkIconViewをPython(2.7以降)で作成する方法を調査しています。

これは、アイコンビューの作成中に特定のプロパティをオーバーライドする必要があるためです。

周りを見回すと、TreeViews用のPyGtkのこの例が見つかりました-同様ですが、IconViewのイントロスペクションの例が必要です

C ++のドキュメントを見てきましたが、cellrenderertextをIconViewに割り当てる方法がよくわかりません。

繰り返しになりますが、ツリービュー用のカスタムセルレンダラーを作成するためのPythonドキュメントをいくつか見つけました

IconViewの例を変更する方法を誰かが正しい方向に向けることができますか

4

2 に答える 2

2

正式な方法は、 を使用することset_cell_data_funcです。

ただし、IconView のコンテキストでは、TreeView の場合とは異なる方法で行われます (カスタム レンダリング関数を TreeViewColumn インスタンスに渡すだけです)。

これは、GTK3 Ruby バインディングでこのナゲットを見つけるまで、私も混乱しました。

: 以前に などのセッターを使用して列をセットアップしていた場合iconView.text_column = TEXT_IDXは、カスタム レンダラーが配置されたらそれらを削除する必要があります。そうしないと、重複したテキスト ラベルが表示されます。

于 2017-02-17T12:34:12.570 に答える
1

Gtk.IconViewから継承するGtk.CellLayoutため、セルレイアウト関数を使用して現在のテキストレンダラーを置き換えることができます。次のようなもの:

renderers = iconview.get_cells()
iconview.clear()
for r in renderers:
    if not isinstance(r, Gtk.TextRenderer):
        iconview.pack_start(r)
    else:
        iconview.pack_start(my_custom_renderer)

これがうまくいくかどうかはわかりませんが、それが私のやり方です。

于 2013-01-04T09:42:10.327 に答える