TLを、DR:代わりに便利なCのAPIの建設プロパティを設定するには、Pythonのコンストラクタ通常の形式を使用します。
C APIのさまざまな_new
のコンストラクタ(基本は_new()
を含む)は、g_object_new()
のラッパーです。 type_new_with_foo()
のようなコンストラクタは、C開発者がg_object_new()
とプロパティ設定を呼び出す際にいくつかの型の安全性を与える便利な関数です。したがって、例えば、gtk_recent_chooser_menu_new()
だけである:
return g_object_new (GTK_TYPE_RECENT_CHOOSER_MENU, NULL);
とgtk_recent_chooser_menu_new_for_manager()
は:
return g_object_new (GTK_TYPE_RECENT_CHOOSER_MENU,
"recent-manager", manager,
NULL);
(コンストラクタのみ) "最近マネージャ" プロパティを設定するために、すなわち、方法。
Pythonバインディングは、オブジェクトを構築するためにC APIを呼び出しません。 Pythonのコンストラクタ正規形、例えば:
button = Gtk.Button()
はg_object_new(GTK_TYPE_BUTTON, NULL)
を呼び出すのと等価です。
button = Gtk.Button(label='Hello, world')
これは、実行時に必要なすべての型の安全性を提供しますC.ザ・Pythonバインディング層でgtk_button_new_with_label()
を呼び出すのと同等です:コンストラクタ正規形は、プロパティ名と値の辞書の形で、引数を受け付け。
通常、この方法を使用することをお勧めします、とないはので、CのAPIを呼び出す:それは言語の規則を次のように、それは、よりPython的にだ
- を
- ことができますように、それは、より柔軟です追加のC APIを必要とせずにさらにプロパティを設定する
これはバインディングのコンストラクタの優れた記述でした。一方、私は以下の関連する質問を開きます。あなたが助けることができると思いますか? http://stackoverflow.com/questions/38171196/python-gtk3-how-to-create-a-gtk-filechoosedialog –