問題タブ [qgraphicsitem]
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.
qt - QGraphicsLinearLayout からシーン座標を計算する
私のアプリケーションでは、QGraphicsWidget から派生したカスタム オブジェクトを使用し、それらを QGraphicsLinearLayout 内に配置しました。しかし、今度は各アイテムのシーン座標を見つける必要があります。出来ますか?どのように?
python - 多くのアイテムがある2D静的シーンでQGraphicsViewのパフォーマンスを向上させる方法は?(それを解決する方法はありませんか?)
正しく理解されていれば、QGraphicsViewは数百万のアイテムを効率的に処理することになっています。
私のアプリケーションでは、数千しかなく、パフォーマンスはすでに非常に悪いです。ビューにシーン全体が表示されている場合、ズーム、hoverEnventsなどは不可能になります。
アイテム間に親子関係を作成し、最適化フラグを変えようとしましたが、結果は同じです。愚かな間違いを犯していることを心から願っていますが、問題を解決する方法を数日探した後、解決策が見つかりませんでした。
助けていただければ幸いです。
これは私の問題を再現します:
- Intel(R)Xeon(R)CPU E5410 @ 2.33GHz
- nVidia Corporation G84 [Quadro FX 1700]
- Ubuntu9.0464ビット
- qt4 4.5.3
- python-qt4 4.6
qt - 子 QGraphicsItem 移動イベント (ItemIsMovable) をその親に
子 QGraphicsItem はどのようにその親アイテムを移動できますか?
子アイテムの ItemIsMovable フラグを設定し、子アイテムを移動しようとすると、親アイテムは移動せず、子アイテムのみが移動します。
p>これは機能しますが、複数のアイテムを選択すると、アイテムがマウスの下に移動するだけです。
どうすればこれを解決できますか?
c++ - QGraphicsItem::paint() が印刷のために呼び出されていることをどのように伝えることができますか?
QGraphicsItem
大きな (数百 MB の圧縮されたマルチチャネル) 画像を表示するカスタムがあります。現在、かなりうまく機能しています。
アイデアは、現在のビュー スケールとグラフィックス ビュー ポートに必要なスキャンラインのみをロードすることです。そして、ディスプレイを別々のスレッドで構築されたタイルに分割します。このpaint()
関数は、タイルを構築して QThreadPool に供給するだけです。また、完了したタイルをチェックして描画します。スレッド/ランナブルとアイテムの間のイベントを処理するコードがさらにあります。しかし、これは基本的な部分です。
目標は、レスポンシブ UI を提供することです。アイテムがそれ自体を更新している場合、UI はブロックされません。印刷方法を理解しようとするまで、すべてうまくいきます。
問題は、ペイント関数への特定の呼び出しが、画面上の更新ではなく印刷の結果であることを知る必要があることです。これは、すべてのタイルが完了してペインターにプロットされるまでメイン スレッドをブロックするために必要です (または、paint() がすぐに戻るため、印刷されたページは空白になります)。
プリンターは画面よりも解像度が高いため、サンプルレートを調整するのにも役立ちます。
したがって、私の質問は次のようになります: my に渡されたがスクリーンまたはプリンターであるかどうかを確認するにはどうすればよいですか。いっそのこと、呼び出しが印刷プレビューか実際の印刷かを判断できますか?QPainter
paint()
ありがとう。
python - PyQt4 の中心点を中心に QGraphicsItem を移動する
Python 2.7 と PyQt4 を使用しています。QGraphicsItem である半円オブジェクトを作成しようとしています。クリックしてドラッグすることで、マウスを使用して移動できるようにしたいと考えています。フラグ ItemIsMovable を設定することで、オブジェクトを作成し、マウスで移動できます。半円は自由に動き回りますが、固定された中心点の周りだけを動かしたいです。表現が難しいのですが、文字盤のようなものではないでしょうか。どうすればこれを達成できますか?
c++ - Qtを使用してC++でQGraphicsSceneからQGraphicsItemにイベントを渡す
QGraphicsSceneを拡張する基本クラスがあります...
そのクラスには保護されたイベントがあります...
には''も含まれているQGraphicsScene
ため、イベントを、内のQGraphicsItemに渡す必要があるユーザークリックがいくつかあります。QGraphicsItem
mousePressEvent
QGprahicsScene
選択したイベントをから特定のイベントに適切に分類するにはどうすればよいQGraphicsItem
ですか?
ありがとうございました。
c++ - このデータ バッファを QImage に表示する方法
QImage に表示しようとしている画像があります。
これは、rows*cols イメージを生成するコードのスニペットです。
ご覧のとおり、私のデータ バッファは「行の高さ」で、「列 * 3 の幅」です。
rgbMapped は unsigned char** 配列です。QTコードに戻ると、次のようになります。
ImagePixMapItem は、いくつかのマウス イベントをインターセプトできるようにするために作成した QGraphicsPixmapItem ですが、ペイント関数などを操作することはありません。
このコードを実行すると、私のイメージに似たイメージとして返されますが、3 つのコピー (1 つは緑がかった色、もう 1 つは黄色がかった色、もう 1 つは目立つ紫がかった色) があります。
この 3 つのデータを重ね合わせたら、おそらく正しいイメージになるのではないでしょうか。
qt - QGrahicsRectItemを使用して、アイテム自体よりも大きい長方形をドラッグします
のに問題がQGrahicsRectItem
ありQGraphicsScene
ます。マウスでアイテムを動かせるようにしたいと思います。しかし、問題は、私の場合、ドラッグする長方形がアイテム自体よりも大きいことです。
これが私が使用するコードです:
したがって、プログラムを実行すると、このウィンドウが表示され、アイテムをドラッグできます。すべて問題ないようです。
しかし、よく見ると、ドラッグゾーンはアイテム自体よりも大きくなっています。(次のスクリーンショットの青い長方形を参照してください)青い長方形は、この長方形内でマウスを動かすと、カーソルが変わり、アイテムをドラッグできることを意味します。
問題は「fitInView(scene()->sceneRect());」に関連していると感じています。ライン。削除すれば動作します。たとえば、「scale(5,1)」を追加すると、同じ問題が発生します。
問題が何であるかについての考えがありますか?
events - pyqt グラフィックアイテムのマウス入力イベント
QGraphicsScene に配置され、QGraphicsView を介して視覚化される QGraphicsItems のマウス入力イベントに接続しようとしています。私が理解していることから、これをオーバーライドするメソッドは、QGraphicsItem (またはそのサブクラスの 1 つ) から派生したクラスの dragEnterEvent です。私の試みは次のようになります。
上記のスニペットで、私が何をしようとしているのかが明確になることを願っています。表示は希望どおりに生成されますが、問題はありません。ただし、描画されるポリゴンは入力イベントに応答しません。dragEnterEvent() が呼び出されているという証拠は見られません。
c++ - QGraphicsItemのコンテキストメニューから関数を実行する方法
次のように、QGraphicsItemサブクラスにコンテキストメニューを実装しようとしています。
私は何が間違っているのですか?「ここに来た!」というテキスト 解雇されることはありません。さらに、メニューからどのアクションが選択されたかを知るためにこれを変更するにはどうすればよいですか?
ありがとう