この問題は何度も発生しています。
widget.show()
の後にQWidget
の一部のプロパティを変更すると、ウィジェットが更新されません。ほとんどの場合、マウスをクリックするか、マウスがウィジェットから出たり入ったりすると、ウィジェットが更新されます。しかし、マウスを離れると、それだけでは更新されません。
これまでは、次のようにして対処することができました。
widget.hide()
widget.show()
しかし、これは非常に汚い修正です。ウィジェットを更新するようにpython
に指示するより良い方法はありますか?
ありがとうございました。
ウィジェットを更新するには、ウィジェットをrepaint()
する必要がありますが、repaint()
を直接呼び出すのはあまり良い方法ではないため、以下を試してください。
widget.update()
この関数はすぐには再描画されません。代わりに、Qtがメインイベントループに戻ったときに、Paintイベントをスケジュールして処理します。これにより、Qtはrepaint()の呼び出しよりも高速でちらつきが少なくなるように最適化できます。
Update()を数回呼び出すと、通常は1回のpaintEvent()呼び出しだけになります。
Qtは通常、paintEvent()呼び出しの前にウィジェットの領域を消去します。 Qt :: WA_OpaquePaintEventウィジェット属性が設定されている場合、ウィジェットはすべてのピクセルを不透明色でペイントする必要があります。
QWidget.update()
はもう試しましたか
この関数は、見えない部分をそのままにして、見える部分だけを更新します。