問題タブ [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.

0 投票する
2 に答える
360 参照

qt - QGraphicsViewでマウスをドラッグしながら、複数のQGraphicsItemの位置を量子化するにはどうすればよいですか?

こんにちは、読んでくれてありがとう。QGraphicsViewでマウスをドラッグしているときに、複数のQGraphicsItemの位置を正しく量子化するのに問題があります。私がセットアップしたシステムは、一度に1つだけドラッグすると、QGraphicsItemを正しく量子化しますが、複数選択してドラッグすると、プライマリアイテム(マウスの真下にあるもの)のみが量子化され、残りのアイテムの位置は継続的に設定されます。私はこれでどんな助けでも大いに感謝します。関連するコードは次のとおりです。

これは、QGraphicsRectItemから継承するMutaEventと呼ばれるクラスにあります。mouseMoveEvent()関数とsetPos()関数を再定義しました。

次のビットは、Mutaと呼ばれる名前空間の静的関数です。

どんな助けでも大歓迎です!

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

c++ - QGraphicsItem-s ホバー イベントのオーバーラップ

お互いの上に QGraphicsItems があります。すべてのアイテムでホバーイベントを利用できるようにするにはどうすればよいですか? 最後に追加された項目 (一番上にある項目) のみがホバー イベントを受け入れます。

ありがとう

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

qt - Qt:回転にQTransformオブジェクトを使用することは、QGraphicsItemでsetRotation()を設定することとは異なります。

回転を設定しているときに、次を使用および使用しQGraphicsItemているときに、変換の原点で異なる結果が得られます。setRotation()

コードの両方の部分でsetTransformOriginPoint()、同じポイントに設定しました。

結果は次のとおりです。

  • メソッドを使用している間setRotation()、アイテムはその変換原点で回転します。
  • オブジェクトを使用している間QTransform、アイテムはアイテムの原点、つまりポイント(0,0)に基づいて回転します。

私のコードはそれよりも複雑ですが、同じように適用されると思います。これQGraphicsItemは実際にはaQGraphicsItemGroupであり、1つのアイテムを追加するだけで問題を確認でき、ローテーション手順でオブジェクトのsetRotation()メソッドを変更しQTransformます。後者は、を無視しsetTransformOriginPoint()ます。

私はしばらくの間この問題を抱えています、そして私はたくさんのリソースを掘ります。Qt C ++コードを参照すると、メソッドが内の構造内のsetRotation()フィールド呼び出しrotation実際の値)を変更していることがわかります。原点は、それぞれと呼ばれるこのような構造の2フィールドの実数値でもあります。変換はフィールドに保存されます。この情報はすべて、次の変数で使用されます。TransformDataQGraphicsItemxOriginyOrigintranformtransformData

そのため、フィールドに設定された変換が値をtransformData->transform無視している理由と、適用された時点がわかりません。transformData->xOrigintransformData->yOrigin

その問題をテストするために使用したコードは、次の関連部分です(マウス入力を受け取り、アイテム自体に回転を適用する回転アイテムがあります)

どちらの場合も、以前はsetTransformOriginPoint()が設定されていましたが、コードを表示するのに関連する部分ではなく、それが行われたことを知るだけです。

私はそれに対する解決策を見つけられないことに不満を感じています。とても簡単に思えますが、回転変換行列を設定すると、設定した変換原点が使用されず、setRotation()メソッドの使用中に正常に機能するのはなぜですか?その質問は私をソースコードに連れて行きました、しかし今は回転が適用された変換から分離され続けているのでもっと混乱しています...

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

qt - QtのQGraphicsItemに対してlower()とraise()を行う方法は?

グラフィックシーンのグラフィックアイテムのzオーダーを変更したかったのです。グラフィックアイテムとしてQGraphicsWebViewを使用しました。どうすればそれを達成できますか?

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

qt - QGraphicsItemsetPosはアイテムの位置を移動していません

私が持っているものは次のようなものです:

私はQtに非常に慣れていないので、基本的な概念を誤解している可能性があります。誰かが私がここで間違っていることを見つけることができますか?

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

qt4 - WSGI Apache モジュールを使用して Qt4 アプリケーションを実行するとエラーが発生する

WSGI 3.3 および Qt4 アプリケーションで問題が発生しています。QGraphicsScene のアイテムは childItem() メソッドを呼び出せないようです。次のテスト スクリプトは、コマンド ラインから呼び出すとうまく機能しますが、WSGI アプリケーションとして呼び出すと終了しません。この問題は、WSGI v3.3 を使用している場合に発生しますが、古い (2.8) バージョンでは発生しないことに気付きました。

childItems() メソッドがハングしているように見え、アプリケーションが応答しなくなります。

何が起こっているのかについての手がかりはありますか?

環境 (動作): python 2.6.4、apache 2.2.14、mod-wsgi 2.8、qt 4.6.2、python-qt 4.7.2

環境(問題):python 2.6.6、2.2.16、mod-wsgi 3.3、qt 4.6.3、python-qt 4.7.3

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

qt - Qt / PyQt:QGraphicsItemとQGraphicsWidgetのジオメトリ、位置、マウスの相互作用

QGraphicsItemsのより大きなプログラムをQGraphicsWidgetsに変換しています(入力のためにアイテムとウィジェットと呼びましょう)。ウィジェットの位置や長方形が古いアイテムと同じではないため、マウスホバーが失敗するようになりました。ビュー、シーン、アイテム、ウィジェットを備えた単純なケースに要約しました。青いアイテムは100x50pixでレンダリングされ、hoverEnterEventが期待どおりに発生します。ただし、赤いウィジェットは意図した幅の半分でレンダリングされます。ウィジェットの純粋仮想関数boundingRectを再実装しても、これを修正できます、ホバーイベントは50x50の左半分の上でのみトリガーされます。ウィジェットがアイテムのようにマウスと適切に相互作用するようにするには、どのpos / rect / Geometryメソッドを使用/オーバーライドする必要がありますか?ありがとう。これが私のサンプルコードです

0 投票する
2 に答える
2823 参照

qt - 複数の QGraphicsItem の mouseMoveEvent を同時にトリガーする

複数の QGraphicsItem を (Ctrl キーを使用して) 選択すると、それらを一緒に移動できますが、実際にイベントを受け取るアイテムに対してのみ mouseMoveEvent がトリガーされます。選択したすべてのアイテムがイベントを受け取れるようにする方法はありますか? Qtのドキュメントでは見つかりません。

選択した項目をグループ化し、QGraphicsView の mouseMoveEvent 内で処理できますか?

助けてくれてありがとう:)

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

qt - QGrahicsItem とその子

QGraphicsItem が子に関してどのように動作するかを理解するために何時間も試みました。新しい QGraphicsItem B (実際にはその独自のサブクラス) を作成し、B で setParentItem メソッドを呼び出して別の QGraphicsItem A に子として追加します。その直後、A は B を子として持ちます。A の子を反復処理するいくつかのデバッグ コードで確認しました。その後、A は Manager の As のリストに追加されます。プログラムのしばらくして、QWidget でリスト イテレータがマネージャから取得されます。次に、As のリストを反復処理し、それぞれの子をチェックすると、すべてがなくなっています。Manager が実際に同じインスタンスであり、リストも同じインスタンスであることをデバッガーで確認しました。どういうわけか、これは本当に私を困惑させます.Qt FWKで、誰が私のAオブジェクトがもはやその子を必要としないと判断したのでしょうか?

私はQtとC ++の初心者であり、Javaからobjective-cまでの幅広い開発経験もあるため、それが私が気付いていないQtの専門であり、完全に自分の愚かさではないことを願っています...

よろしくお願いします、

アンドレ

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

qt4 - アニメーションが終了した後に QGraphicsPixmapItem の可視性を変更するにはどうすればよいですか?

QPropertyAnimation を使用して、QGraphicsPixmapItem サブクラスの位置と不透明度をアニメーション化しています。pixmap が完全に透明になったら、setVisible(false); を使用して非表示にします。または非表示(); マウスイベントをブロックします。QPropertyAnimation を使用しようとしましたが、そのアニメーションはブール値のプロパティを変更しないようです。これを達成する他の方法は何ですか?