web-dev-qa-db-ja.com

GtkBuilderを使用してウィジェットを作成する

Gladeを使用して、ウィジェットでBoxを設計し、実行時にこれらのウィジェットをUIにロードしています。実行時にウィジェットで各ボックスを作成するには、新しいGtkBuilderを作成し、Gladeが作成した.uiファイルからテキストを渡してadd_from_stringを呼び出し、UIでget_object( "box1")から返されたオブジェクトを使用します。コードでウィジェットを作成できることはわかっていますが、今のところは、Gladeが作成する.uiファイルを使用したいと思います。ただし、作成するすべてのBoxに対して新しいGtkBuilderオブジェクトと無駄なWindowオブジェクトをインスタンス化するのは非効率的です。新しいGtkWidgetオブジェクトと無駄なWindowオブジェクトを作成せずに.uiファイルをロードするより効率的な方法はありますか?

ありがとう、ヴァンス

4
user72943

実行時にさまざまな領域にさまざまなチャンクを押し込みたい場合は、多数のウィンドウを使用して1つの空き地ファイルを構築し、それらを親に再設定できます。例として、私が この他の質問 で何をしたかを確認してください。

2
RobotHumans

アプリの実行中にGUIを新しいウィジェットで埋めたい場合、個別の.uiファイルとそれらのGtkBuilderを作成するのはまったく間違っています。コードを使用せずに単一のウィジェットを作成するのは非常に簡単です。

質問にpygtkというタグを付けているので、Pythonを使用していると仮定します。

簡単な例を見てください:

from gi.repository import Gtk

そして:

my_window = Gtk.Window()
my_button = Gtk.Button()
my_window.add(my_button)
my_window.show_all()

さて、それ自体では実際には動作しませんが、それが新しいウィジェットを作成する方法です。特定のウィジェットの詳細については、このエレガントなチュートリアル/ドキュメントを参照してください。 http://python-gtk-3-tutorial.readthedocs.org/

2
Rafał Cieślak