問題タブ [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.
c++ - QGraphicsPolygonItem スケールを左上から
QGraphicsPolygonItem のスケーリングに関して、1 つの質問があります。
ポリゴンがあります(QGraphicsPolygonItem内):
次に、それをスケーリングしようとします ( setScale(2) )。Polygon は、左上からではなく、中心点からスケーリングを開始します。Qt のスケーリングと原点に関するドキュメントを読みましたが、効果はありません。テスト目的で、ポリゴンを長方形に変更しました-スケールは正しく機能しています。
上、左からポリゴンをスケーリングする方法は?
縮尺なし (多角形の赤、長方形の黒):
(出典: sources.ru )
スケール x2:
(出典: sources.ru )
助けてくれてありがとう
c++ - QtC++複数のQGraphicsItemが1つのマウスイベントを処理できるようにします
QGraphicsItemを実装するオブジェクトChartblockを作成しました。私の目標は、これらのオブジェクトのグリッドを作成することです。マウスボタンを押して(押したままにして)各ブロックをドラッグしたら、カーソルがブロックに入るときに各ブロックで何かを実行します。
QGraphicsItemは、その中でクリックされたときにマウスイベントを取得するため、他のItemはmouseMoveEventに対して起動しません。次に、QGraphicsItemGroupに基づいてオブジェクトを作成し、すべてのマウスイベントを処理しましたが、カーソルが置かれている各子にmousePressEvent/mouseReleaseEventとmouseMoveEventを渡す方法が必要になります。
私はこれを行う方法を考えすぎていますか?このような単純なアクションを作成するのはそれほど難しいことではないようですが、QGraphicsItemsがそれ自体でマウスイベントを保持しているため、それを回避する方法がわかりません。私は同様の状況を読みましたが、簡単な答えを与えるものは何もないようです。
編集:これを行う方法は、配列内に作成するすべてのQGraphicsItemの座標/サイズを追跡し、グループmouseMoveEventでカーソルの位置を取得して、ヒットがあるかどうかを確認すると思います。
qt - QGraphicsRectItemのdrawForeground
私QGraphicsRectItem
はその子供たちの上に描くための方法が必要です。いくつかの子アイテムを含むアイテムがあります。特定の高さで、子アイテムの上に線を引く必要があります。
inと同様のdrawForeground
inを実装する方法はありますか?QGraphicsItems
drawForeground
QGraphicsScene
可能であれば、子アイテムごとに線を引く必要はありません。
qt - QT+ QGraphicssvgitem の境界矩形を無効にするには?
の を無効化/非表示にする方法を知りたいboundingrectangle
ですQGraphicssvgitem
。
これは実装されQGraphicsitem::Itemisselectable
ていない場合でも機能しますが、実装されていない場合は、イベントを呼び出すのに問題がありmouserelease
ました。だから私に強いテキストを助けてください
わかりました.. 私は現在、単線結線図作成ソフトウェアの QT を使用してシステムを開発しています。その主な機能の 1 つは、ドラッグ アンド ドロップです。左側にQDockwidgetがあります。QGraphicssvgitemsがあります。それらは QGraphicsscene にドラッグされます。QGraphicssvgitem が QGraphicsscene にドロップされると、アイテムの周りに点線が表示されるようになりました。これは私の問題です。(QGraphicsitem::Itemisselectable,false)を実装すると、この点線は単にオフになります。これが実装されている場合、svgitem は QGraphicsscene のグリッドに正しくスナップしません。アイテムの周りのこの点線の境界長方形をオフにする他の方法はありますか?
c++ - 実行時チェックの失敗#0-ESPの値が関数呼び出し全体で適切に保存されませんでした
多重継承を使用するQtアプリケーションで発生するランタイムエラーを示す簡単なプログラムを作成しました。継承ツリーは次のようになります。
そしてここにコードがあります:
Visual Studioでデバッグすると、インターフェイスメソッドが呼び出されたときにランタイムエラーが発生します。
問題が何であるかについて何か考えはありますか?
qt - 親を基準にした位置でQGraphicsItem(親)内に図形を描画する
私は自分のオブジェクトを実装していますQGraphicsItem
-それは本質的には境界線のある正方形です。親として使用して、そのアイテム内に図形を描画しようとしています。問題は、親内のシェイプに使用している座標が、親の座標ではなく、シーンに関連していることです。
例:自分(親)QGraphicsLineItem
内にを描画したい。QGraphicsItem
親は50,50で、寸法は20x20です。座標0,0,20,20を使用して、親を指定して線を描画すると、親ではなく、シーンを基準にして0,0,20,20に描画されます。
線(または他の形状)がシーンではなく親を基準にした位置を使用するようにする方法はありますか?または、親のXとYをチェックして、手動で座標を決定する必要がありますか?
c++ - オブジェクトを QGraphicsScene に所有する
画像に基づいたドラッグアンドドロップ機能が欲しいです。画像をドラッグ アンド ドロップした場合、どの画像を選択して移動したかを知りたいと思います (単純な std::string で、その画像が表すオブジェクトを一意に識別できます)。私の考えは、QGraphicsScene に自分のオブジェクト (QPixmapItem) を保存することです。
これは、オブジェクトをシーンに追加するために使用する方法です。
QMouseEventでオブジェクトを「キャッチ」しようとする方法は次のとおりです。
オブジェクトはシーンに追加されていますが、それらを押すたびに、最後の行 (「アイテムが押されました」) が画面に表示されません..
qt - QGraphicsItem選択
QGraphicsItem の一部を選択するための簡単な方法はありますか (たとえば、破線の境界線を使用して選択する場合など)。QGraphicsScene
見つけましQGraphicsItem::ItemIsSelectable
たが、あまり役に立ちません。
どうも
qt - QGraphicsItem を再描画するときに QPainter オプションを再定義する
QGraphics シーンで QGraphicsItem を描画する前に、QPainter を再定義したいと考えています。
現在は廃止されています。「新しい」メソッドとは何ですか?
どうも
qt - Qtでマルチカラーの線を引く
私が達成しようとしているのは次のとおりQGraphicsScene
ですQGraphicsPixmapItem
。ピックスマップには複数の色があり、ピックスマップ全体に線を引く必要があります。この線は、すべての点で表示および認識できる必要があります。
私の考えは、すべてのピクセルがピックスマップの相対ピクセルの負の(補色)色を持つ線を引くことです。そこで、マルチカラーの線を描く方法をサブクラス化QGraphicsItem
して再実装することを考えました。paint()
しかし、関数からピックスマップのピクセル情報を取得する方法がわからないために行き詰まっておりpaint
、見つけたとしても、このように線を引く方法を考えることはできません。
進め方についてアドバイスをいただけますか?