Qt5.6を使用していますが、QWidget
グラフィックオブジェクトがレンダリングされていて、他のグラフィックスがレンダリングされたときに、フロント。Qtグラフィックは別のものによって隠されていますが、まだペイントアップデートが発生します
これはオーバーヘッドを発生させます。グラフィックスが前面に表示されているかどうかを確認したい場合は、ペイントイベントを中止する必要があります。
私はこれが自動であり、Qtの内部の一部として行われると考えましたが、そうは思われません。
Qt5.6を使用していますが、QWidget
グラフィックオブジェクトがレンダリングされていて、他のグラフィックスがレンダリングされたときに、フロント。Qtグラフィックは別のものによって隠されていますが、まだペイントアップデートが発生します
これはオーバーヘッドを発生させます。グラフィックスが前面に表示されているかどうかを確認したい場合は、ペイントイベントを中止する必要があります。
私はこれが自動であり、Qtの内部の一部として行われると考えましたが、そうは思われません。
各ウィジェットのペイントイベントは、コンポジットがウィジェットを再描画する必要があると判断した時点で、ウィジェットコンポジットから来ます。イベントが到着すると、ウィジェットはペイントする必要があります。そうしないと、視覚的に未定義の結果が得られます。
デフォルトでは、ウィジェットは透明にすることができ、ウィジェットコンポーザーはウィジェットの全スタックをバックツーフロントの順序でペイントして合成する必要があります。
透明でないウィジェットには、Qt::WA_OpaquePaintEvent
属性が設定されている必要があります。これは、ウィジェットのコンポーザーに、ウィジェットの背後に完全に隠されているウィジェットをペイントする必要がないことを通知します。ウィジェットのすべてのピクセルをペイントするようにしてください!
ありがとう私は明日最初にこれを試してみます – SPlatten
QWidgetから派生したオブジェクトです。 – SPlatten
1)どのようにして、あるウィジェットの状況が他のウィジェットの上に完全になったのですか? 2)あなたのQPaintEvent引数にクリップされていない領域が得られていますか? – peppe
私のアプリケーションは、XMLファイルからコンテンツをレンダリングします。いくつかのウィジェットには、親ウィジェットが表示されます。 – SPlatten