問題タブ [qregion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3453 参照

c++ - QPaintEvent - 画面の領域のみを更新する

私のコードでは、アプリが GPS 座標を取得するたびにポイントを描画しようとしています。ポイントは、「i」ピクセルだけ右および下に移動します。描画したままにしたいのですが、更新する必要がある画面上の領域を指定するための QRegion パラメータを使用しているにもかかわらず、画面全体が常に更新されているようです。助けてくれる人はいますか?私はこれが本当に初めてで、何が悪いのかわかりません。

このアクションを処理するクラスは次のとおりです。

0 投票する
0 に答える
807 参照

qt - setMask の QRegion のトリミング

私は サークルsetMask()を作っていますQRegionQRect

そして今、私はQRect(43,0 93x110)前の領域から切り取ってsetMaskingに使用する必要がある小さなwidgetRectを持っています。

私がしているcircleRegion.intersected(widgetRect)ことは、私に適切な結果を与えていません。私はパイ地域を期待しています。どこに行方不明ですか?

0 投票する
1 に答える
126 参照

c++ - QGraphicsView::update( const QRegion& ) によってウィジェット全体が更新されるのはなぜですか?

描画に多くの処理が必要な大規模で複雑なグラフィックス ビューがあるため、フレームごとにその一部 (OpenGL ビデオ ディスプレイ) のみを再描画し、残り (さまざまな子ウィジェットなど) は変更しません。

ただし、QRegion で update() を呼び出すと、paintEvent の領域がウィジェットのフル サイズになるため、画面全体が毎回再描画されます。パラメーターなしで update() を呼び出すことはないようです (少なくとも、私のバージョンではありません)。

ペイント イベントで全画面が表示される原因は何ですか?

出力:

編集:

また、viewportUpdateMode を SmartViewportUpdate に設定して、update(QRegion) の代わりに updateScene(QList) を使用してみましたが、paintEvent の領域はまだ画面のフル サイズです。CacheMode は CacheNone に設定されており、それを CacheBackground に設定すると、OpenGL が表示されなくなります。