私のwx.Frameベースのwxpythonアプリケーションでは、必要なときにwx.ClientDCインスタンスを作成してイベントが発生したときに、パネルに線を描画します。唯一の問題は、ウィンドウが最小化されて復元されると、線が消えることです。私はウィンドウを復元するときに作成した描画メソッドを呼び出すことができますバインドするオーバーライドまたはイベントをいくつかの種類がありますか?wxpython:ウィンドウをリトラクトしたときに何かを再描画できますか?
ありがとうございます!
私のwx.Frameベースのwxpythonアプリケーションでは、必要なときにwx.ClientDCインスタンスを作成してイベントが発生したときに、パネルに線を描画します。唯一の問題は、ウィンドウが最小化されて復元されると、線が消えることです。私はウィンドウを復元するときに作成した描画メソッドを呼び出すことができますバインドするオーバーライドまたはイベントをいくつかの種類がありますか?wxpython:ウィンドウをリトラクトしたときに何かを再描画できますか?
ありがとうございます!
ウィンドウが復元されると、(一部のプラットフォームでは)EVT_PAINTハンドラを使用して再描画されます。
溶液は、例えば、 OnPaint()に同じ行を描画します。あなたが描くものをバッファリングします。 wxBufferedDCクラスを参照してください。
描画する必要があるのはwx.EVT_PAINTなので、のパネルでそのイベントにバインドします。
self.Bind(wx.EVT_PAINT, self._onPaint)
in _onPaintでは、wx.PaintDCを使用して例を描画します。
dc = wx.PaintDC(self)
dc.DrawLine(0,0,100,100)