1

wxPython で書かれた GUI があります (boa コンストラクターを使用)。ユーザーのセッションをファイルに保存して、次回のアプリケーション起動時にロードしたいと考えています。コントロールを繰り返し処理し、それらの値を辞書に保存することで、各値を「手動で」保存することを避けたいと思います。

アプリケーションで使用されているすべての wxID とそれに対応するウィジェットを取得する方法はありますか?

4

3 に答える 3

2

ID はまったく必要ありません。最上位のウィンドウから開始し、wxWindow::GetChildren()メソッドを使用してすべての子を再帰的に列挙するだけです。次に、それぞれの子に対して、そのタイプを動的に決定し (いくつかのタイプのコントロールのみを使用する場合は、これは簡単です)、その値を保存する必要があります。コントロールを作成するときに、コントロールの名前(ラベルではなく)を指定して、数値 ID よりも便利な一意の識別子を指定すると便利な場合もあります。

于 2013-05-08T10:29:20.477 に答える
1

wx.lib.agw の PersistenceManager メカニズムを見てみましょう。元のドキュメントは次のとおりです。http://xoomer.virgilio.it/infinity77/AGW_Docs/persist.persistencemanager.PersistenceManager.html

そして、ここに新しいドキュメントがあります:

https://docs.wxpython.org/wx.lib.agw.persist.persistencemanager.PersistenceManager.html#wx.lib.agw.persist.persistencemanager.PersistenceManager

または、フレームまたはパネルの GetChildren() メソッドを使用してすべてのウィジェットを取得し、それらから値を取得することもできますが、PersistenceManager の方が理にかなっていると思います。

于 2013-05-08T13:23:45.300 に答える