0


0

wxPythonツールキットに問題があります。 私はいくつかのステータス情報を表示するグリッドを配置するためにwx.GridSizerオブジェクトを使用しています。 このグリッドを更新する必要があるので、それを行ういくつかの異なる方法を思いつきました。 私が好むのは、更新が必要なテキストを単純に更新/更新することです。そのため、wxStaticTextオブジェクトをSizerから切り離し、それを新しいwxStaticTextオブジェクトで上書きして、その前のインデックスでSizerに戻すことができます。

もっと良い方法は、wxGridSizerの親クラスであるwxSizerを使うことです。これは 'Replace’と呼ばれるメソッドを持っています。 はるかに滑らかないいえ? このメソッドを使おうとすると、非常に奇妙なエラーが発生します。 これはエラーの後に続くコードです:

self.info_sizer.Replace(self.project_value、wx.StaticText(self、wx.ID_ANY、project))

self.info_sizer.Replace(self.project_value、wx.StaticText(self、wx.ID_ANY、project))AttributeError: 'GridSizer'オブジェクトには属性 '置換'がありません。

だから突然Replaceはオプションではありません。 先ほど参照したInsertメソッドは、サイザーの親クラスwxSizerのメソッドです。 したがって、wxGridSizerを使用しているサイザーイムが、その親クラスのメソッド(継承、サブクラス化)のInsertを正常に呼び出すことができることが証明されています。

では、なぜReplaceメソッドを同じように呼び出すことができないのでしょうか。

1 Answer


0


テキストを更新するために `+ wx.StaticText.SetLabel(" New label ")+`を使用できない理由は何ですか?