6

GtkBuilderオブジェクト内のすべてのGtkWidgetsの「名前」を取得しようとしています。

ビルダーオブジェクトからすべてのオブジェクトを取得gtk_builder_get_objects()し、GSListに保存することができました。

ただし、gtk_widget_get_name()gobjects(GtkWidgetsにキャスト)で使用すると、gladeに表示される「window1」や「button1」ではなく、「GtkWindow」や「GtkButton」などの一般的な名前が表示されます。

どんな助けでも非常にありがたいです、そしてこのプログラマーをとても幸せにするでしょう。

4

2 に答える 2

5

私はまったく同じことをしています。ここで指定されているように、ファイル id=から文字列を取得できました。.gladegtk_buildable_get_name()

:2.20より前は、GtkBuilderは構築されたウィジェットの「name」プロパティを「id」属性に設定していました。GTK + 2.20以降では、「id」を取得するgtk_buildable_get_name()代わりにを使用するgtk_widget_get_name()か、UI定義で「name」プロパティを設定する必要があります。

于 2012-02-29T18:17:26.357 に答える
4

ビルダーに設定されている名前は、の名前と同じではありませんGtkWidget。(ビルダーが追加された)ファイルまたは文字列からGtkBuilder設定された名前と関連するオブジェクトを持つ内部ハッシュテーブルを維持します。が呼び出されたGtkBuilder UI definitionsときにオブジェクトを取得するために使用されます。のプロパティgtk_builder_get_object ()を利用します。にプロパティを設定して、を使用して取得できるの名前を設定します。 お役に立てれば!"name"GtkWidget"name"GtkBuilder UI definitionsGtkWidgetgtk_widget_get_name()

于 2011-11-25T03:19:53.377 に答える