問題タブ [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 - QGraphicsScene で QGraphicsPolygonItem のコピーを配置する際の問題
QGraphicsPolygonItem (objectA) に次の特性があるアプリケーションがあります。
シーン位置: X=250 Y=125
変身():
今、私は新しい QGraphicsPolygonItem (objectB) を作成し、そのシーンポスと変換をオブジェクト A と同じに設定しています:
問題は、objectB が ObjectA から X 軸方向に 50 単位移動することです。
理由はありますか?
qt - マウスがボタンを押した状態でQGraphicsItemに入ったときに検出する
QGraphicsItem
マウスボタンが押されている間にマウスカーソルが移動したとき、つまりマウスがアイテムに入る前にボタンが押されたときを検出したい。私の最初のアイデアは を使用することhoverEnterEvent
でしたが、マウスの左ボタンが押されたときにトリガーされないようです。私の他のアイデアは を使用することdragEnterEvent
でしたが、まったくトリガーされないようです ( setAcceptDrops(True)
.
カーソルがアイテムの上に移動し、マウス ボタンが押されたことを検出する最良の方法は何ですか?
c++ - マウスグラブを失うことなくQGraphicsItemを別のシーンに移動するにはどうすればよいですか?
1つQGraphicsScene
はメインシーンで、いくつかの可動QGraphicsItem
があり、もう1つQGraphicsScene
はメインシーンの上にオーバーレイとしてあります。オーバーレイシーンはユーザーのディスプレイとまったく同じサイズですが、メインシーンははるかに大きいため、自動的に上下にスクロールする必要があります。
メインシーンのアイテムを移動する場合は、そのアイテムをメインシーンから削除してオーバーレイシーンに追加し、ユーザーがオーバーレイシーンのアイテムを移動できるようにし、マウスを離すとすぐに移動できるようにします。メインシーンに戻します。これにより、アイテムがディスプレイの端に近づいたときに、メインシーンをスムーズに自動スクロールできます。
問題は次のとおりです。アイテムがシーンから削除されると、イベントを受信するQMouseUngrab
ため、オーバーレイシーンでアイテムをもう一度クリックせずにアイテムを移動し続けることはできません。オーバーレイシーンでアングラブイベントを防止したり、偽物QMousePress
を生成したりしようとしましたが、いずれも問題を解決しませんでした。
あるシーンでアイテムの移動を開始し、別のシーンで中断することなくアイテムを移動し続ける方法を知っていますか?
言い換えると:
QMousePress
メインシーンで起こります- オーバーレイシーンで数
QMouseMove
秒、最後に発生するはずですQMouseRelease
QMouseRelease
アイテムがメインシーンに戻された直後
c++ - Qt GraphicsView ストレッチ シーンに合わせて
わかりましたので、環境として Qt と C++ を使用しています。
QGraphicsView
UI にa を描画します。
次にシーンを作成し、そのシーンにセリフを追加します。5000 個のポイントの配列を調べて、各ポイントを結ぶ線を引きます。
問題は、取得している数値が非常に小さいことです (例: 2.000e-12)。数は、アプリケーションに基づいて一貫して変化します。シーンを調整してストレッチしてQGraphicsView
. 今、私が見るのは私の視野の中心にある点だけです. 私は理にかなっていますか?
c++ - QGraphicsViewのQGraphicsItemクラスを使用して三角形を描画する方法
QGraphicsView
を使用して三角形のオブジェクトを描画したいと思いますQGraphicsItem
。しかし、trianglerに従ってバウンディングrectを実装する方法がわかりません。
qt - (このアイテムが属する)グループ全体を選択せずにQGraphicsItemを選択する方法
グループ全体を選択せずに、1つのグループに属するアイテムを選択できるのではないかと思います。
私が作成しようとしているのは、移動できる(すべてのアイテムが一緒に移動される)アイテムのグループですが、個別に移動することはできません。ただし、このグループ内のアイテムを選択して、並べ替え、削除、色の変更などを実行できるようにもしたいと思います。
もう1つの問題は、グループのグループが存在する可能性があることです。親グループ内でこれらのグループも選択できるようにしたいと思います。どのグループのユーザーを選択したいかを判断できないため、これは問題になる可能性があると考えていました。デモンストレーションの目的で、次のアイテムで構成されるグラフィックのシーンがあるとします。
グループBを含むグループA。グループBには3行が含まれます。グループAをダブルクリックすると、グループBを選択できます。もう一度Bをダブルクリックすると、グループB内の行を選択できます。Escキーを押すと、ダブルクリックとは逆になります。問題は、すべての選択が親にルーティングされ、すべての子に戻されるため、その方法がわからないことです。
c++ - QTで複数のQGraphicsItemをマウスで1回押す
QGraphicsScene に QGraphicsItem のマトリックスがあり、要素をクリックすると色が変わります。これは で実装されmousePressEvent()
ます。クリックしたままにして、カーソルを他の QGraphicsItem の上に移動し、それらの色も変更できるようにしたいので、mousePressEvent()
.
問題は、マウスが最初の要素をつかむため、クリックするとすべてのイベントが「保持」され、hoverEnterEvent()
トリガーされないことです。に追加しようとしungrabMouse()
ましmousePressEvent()
たが、役に立ちませんでした。
1 つの解決策は、QGraphicsitem をドラッグ可能にし、そのために QT ドラッグ アンド ドロップ機能を使用することだと思います。実際、私はこれを持っています:
アプリケーションから要素の上にテキストをドラッグすると、希望どおりに機能しますが、QGraphicsItem を「ドラッグ」すると機能しません。
QGraphicsItem をドラッグ可能にして、クリックしたマウス ボタンでホバーしながらイベントをトリガーできるようにする唯一の解決策はありますか?
qt - QGraphicsRectItem::boundingRect() は、本来よりも 1 ピクセル大きい QRectF を返します
item.width=10 と item.height=10の QGrahicsRectItemアイテムがあるとします。その左上隅は (0,0) です。item.BoundingRect()
を返す必要RectF(0,0,9,9)
がありますが、代わりにRectF(0,0,10,10)
次のコードでテストできます。
したがって、boundingRect() は幅と高さが 11px の RectF を返しますが、width() と height() はどちらも 10 であると主張しています。
どうしたの?
qt4 - 子 QGraphicsItems のクリッピング
私はQGraphicsItem
他のいくつかを含むを持っていますQGraphicsItems
。
それらを移動するときに、それらの子アイテムが親アイテムの四角形に対して描画およびクリップされるようにするにはどうすればよいですか?
c++ - Qt-シーン内の画像ピクセルに座標をマップする方法、マップする方法
Qtでシーンを作成し、オープンストリートマップ[.png]から画像を取得して、シーンに配置しました。また、その座標を別のファイルにエクスポートしました。私の質問は、画像ピクセルをマップ座標でマップする方法です。基本的には地図の道路を自分の画像にプロットしたいです。ありがとうございます。