2020-02-21

【備忘録】PyGObject の Dialog の戻り値

GObject (GLib Object System) は、GTK+ のすべてのウィジェットおよび関連するオブジェクトの基底クラスからなるオブジェクトシステムと、言語間の透過的相互運用性を提供するライブラリです。GObject は C 言語で実装されており、バインディングによって他の言語から利用可能となっています。

PyGObject は GObject へのバインディングを提供する Python パッケージです。

Wikipedia より引用・編集

Dialog の戻り値

Dialog の戻り値は、例えば OK ボタンが押された (Gtk.ResponseType.OK) という整数情報です。より複雑なダイアログ、もっと言えばサブウィンドウ(インスタンス)で操作した複雑な情報を、そのウィンドウを閉じた後にどうやってメインのインスタンスへ返すかを考えていました。

結論は、ダイアログの表示がなくなってもインスタンスは残っているので、インスタンスメソッドで欲しい情報を取得すれば良い、です。しかし、どうしても視覚的にウィジェットが閉じて無くなれば、オブジェクト(インスタンス)も無くなってしまうと錯覚してしまい、いつも無駄に悩むことを繰り返すので備忘録にしました。なお、参考サイト [1] の Gtk.Dialog の response シグナルの扱いについて勉強になったので、そのサンプルをベースに少し変更を加えました。

gtk_dialog_2.py
gtk_dialog_2.py の実行例
ダイアログウィンドウで OK ボタンをクリックした時の出力例
OK ボタンがクリックされました。
あいうえお

参考サイト

  1. python - How to pass/return data from Gtk dialog to main application class - Stack Overflow

 

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: