問題タブ [qgraphicspixmapitem]
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.
c++ - 多くのQGraphicsPixmapItemでQGraphicsViewが遅くなる
QtCreator を使用して QGraphicsView 機能をテストする小さなコードを作成しました。
コードは非常に単純で、QGraphicsScene を持つ QGraphicsView から継承されたクラスを作成しただけです。100x100 にスケーリングされた多数の QGraphicsPixmapItem (この場合は 2000) でシーンを埋め、ランダムにシーンに配置します。
次に、カスタム クラス内で QTimer を使用して、シーンのすべての要素を少し移動します。
(最初の QTimer が 1 秒間に何回呼び出されるかを確認するために、2 番目の QTimer を追加しました)。
数百の要素でうまく機能しますが、要素数が増えるとパフォーマンスが低下します。
誰かがパフォーマンスを上げる方法についてヒントをくれませんか? たぶん、QList を使用した要素へのアクセスが遅い... または、この単純なアニメーションに QTimer を使用するのは非常に悪い考えです... または、いくつかの最適化フラグをどこかに追加する必要があります... QGraphicsView を忘れて試してみてくださいQtQuickとQML ...
最終的なアプリケーションでは、画面に多数の画像を描画し、ソースとして png 画像を使用してそれらの一部をアニメーション化する必要があります。
テストプロ
C_View.h
C_View.cpp
main.cpp
python - QGraphicsPixmapItemの可視座標を決定する方法は?
私は PyQt を使用して次の方法で画像を表示しています (一般的なアプローチを示すために、面倒な詳細を省略しています)。
すべてが機能し、画像がウィンドウに正しく表示されます。次に、次のようにして画像の一部を表示します。
ここで、「roiCoords」は、実行時にプログラムによって生成される xmin、xmax、ymin、ymax を含む単なるリストです。この問題は、ユーザーが画像が表示されているウィンドウのサイズを変更したときに発生します。デフォルトの動作、つまりズームは同じままですが、ユーザーがウィンドウのサイズを変更すると画像がトリミングされる(またはより多くの画像が表示される)ため、ウィンドウのサイズ変更イベントで「fitInView(...)」を呼び出していません。私の質問は、ユーザーがウィンドウのサイズを変更して保存できるようにしたときに表示可能な画像 (ピックスマップ) の部分を決定する方法です (この理由は、関心領域の四角形を更新しようとしているからです。は、画像の小さな表現の上に描画されており、ユーザーが画像を含むウィンドウのサイズを変更するときに、縦横比と位置に関してこれを同期させる必要があります。) 探し回ったが、何も見つからない. どんな助けでも大歓迎です。
更新: サイズ変更イベントでウィンドウのサイズを確認してから、シーンにマップできる可能性があることに気付きました。以下のいくつかの変形:
python - QPixmap: addPixmap で画像のサイズを大きくするには?
png は既に存在します。スクロールバーで画面に表示しながらサイズを大きくする方法は何ですか?
目的は、この画像のサイズが大きくなるボタンをクリックすることです。