問題タブ [qgraphicsview]
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++ - Qt:mouseMoveEventと子オブジェクトのhoverEnterEventに干渉します
私はQGraphicsView
、コネクタを持つ要素を含む一種のサーカットエディタを作成するために使用します。それらのコネクタをワイヤで接続できるはずです。ただし、あるコネクタから別のコネクタにドラッグしているときに、Qtがマウスをつかみ、他のコネクタが受信を停止するという問題がありますhoverEnterEvent
。ところで、ホバーコネクタではサイズが変更されるため、コネクタを叩きやすくなります。
繰り返しますが、ドラッグ中にマウスをつかまないことは可能ですか?
Qt 4.5forWindowsを使用しました。
要求に応じて、ここにいくつかのソースがあります:http: //pastebin.com/m422b9495
qt - QGraphicsView-マウスとキーボードのスクロールを無効にする方法
私のアプリケーションでは、pixmapが追加されたQGraphicsSceneがあり、すべてがスクロールバーをオフにしてQGraphicsViewで表示されます。プログラムウィンドウはピックスマップよりも小さく、矢印キーを押すかマウスホイールを動かすと、ピックスマップが移動します。
ピックスマップがウィンドウよりも大きい場合でも、イベントを使用しない限り、キーボードやマウスで移動しないようにするには、どうすれば無効にできますか?
(インタラクティブプロパティをfalseに設定しようとしましたが、機能しませんでした)
c++ - レイアウトとウィジェットで QGraphicsScene を使用するにはどうすればよいですか
Qt4でウィジェットを表示するグラフィックデータを作成していますが、それを使用したり、データ項目のQGraphicsScene
作成などに誘惑されました.QGraphicsItem
ただし、コントロールのレイヤーを追加したかった (例: スクロールバー、ズーム + その他のボタン - Google マップなどと同様のスタイルにしたい、つまり、ウィジェット全体にデータが表示され、ボタンはそれらの上に表示されます) ウィジェットに。したがって、それらをシーンに追加することは実行可能かもしれないと考えました (おそらく、データの上に表示される a の子としてQGraphicsGroupItem
)。しかし、ウィジェット全体のサイズを変更するときにそれらを移動してサイズ変更したいので、QGraphicsLayout
それらを管理するために a を使用する必要があります。しかし、この時点で、物事はかなり複雑であることがわかりました。
問題は、 を使用する場合QGraphicsLayout
、次の制約が成り立つことです。
- レイアウト
QGraphicsWidget
で管理できるのは QGraphicsLayout
の子を管理するためにのみ使用できますQGraphicsWidget
つまり、コントロールを として作成しQGraphicsWidget
、トップ レベルQGraphicsWidget
をデータ ウィジェットに追加し、このトップ レベル ウィジェットのサイズを自分で管理する必要があります。
だから私は尋ねたい:
従来のアプローチ (つまり、すべてのコントロールにプレーンな古いウィジェットを使用
QGraphicsScene
し、データを表示するためだけに使用する) の方が合理的ではないでしょうか?この場合に使用する利点はありますか
QGraphicsScene
(パフォーマンスまたはシンプルさ...)?QGraphicsScene
その強みを活かすにはどうすればいいの?
qt - カスタム QGLWidget で Qt の QGraphicsView::setViewport を呼び出す
次のように、以前に QGLWidget から派生しました。
ただし、カスタム QGLWidget をビューポートとして使用して QGraphicsView を初期化しようとすると、initializeGL が呼び出されないことがわかりました (Qt ライブラリ内にブレークポイントを設定しても、QGLWidget::initializeGL() がプレーンに作成された場合も同様です)。
現在 MyGLWidget::initializeGL() に存在するコードを配置する正しい場所はどこですか?
qt - Qt の 2 つの QGraphicScene インスタンスで同じモデルを共有する
QGraphicsScene オブジェクトを使用してダイアグラムのエディターを表示するアプリケーションがあります。同じダイアログの読み取り専用バージョンを作成したいのですが、ユーザーが両方を同時に表示できるようにします。
QGraphicsScene の 2 つのインスタンスを作成し、2 番目のインスタンスで addItem を使用すると、最初のアイテムからすべてのアイテムが削除されます。Qt はシーン間のモデルの共有をサポートしていますか? 同じシーンを持ってビューをカスタマイズしようとする唯一の選択肢はありますか? オブジェクトの選択情報が共有されているグラフィックス項目内にあるため、後で機能しないようです。フラグを無効にすると、両方のビューで読み取り専用になります。アドバイスをいただければ幸いです。ありがとう。
c++ - QGraphicsViewおよびQGraphicsItem:ビューを拡大縮小するときにアイテムを拡大縮小しない
QGraphicsView
Qtのサブクラスとサブクラスを使用していQGraphicsItem
ます。ビューの長方形が変更されたとき、たとえばズームインしたときに、ビュー内のアイテムのグラフィック表現を拡大縮小しない方法はありますか。デフォルトの動作では、アイテムはビューの長方形に対して拡大縮小されます。
ビューを拡大するときに拡大縮小されない細い長方形で表される2Dポイントを視覚化したいと思います。頂点が常に同じサイズで表示される、一般的な3Dモデリングソフトウェアを参照してください。
ありがとう!
c++ - QGraphicsTextItem の QPixmap
QGraphicsTextItem を QPixmap に変換/ペイントするにはどうすればよいですか?
python - 自動アイテム配置を備えたQGraphicsView
QGraphicsViewを使用してアセットブラウザを作成したいと思います。QGraphicsViewとQGraphicsItemsを使用した例とは少し異なります。これは、スクロールバーを1つだけにし、ビューポートのサイズが変更されたときにアイテムを自動的に移動するためです。たとえば、ビューポートの幅が4つのアセットを表示するのに十分な大きさの場合、次のように表示する必要があります。
ただし、ビューポートが縮小され、連続して3つしか含めることができない場合は、次のように表示されます。
それらのアセットを自分で移動して、グラフィックスビューにすべてを管理させる必要はありません。どういうわけか可能ですか?
私は一度そのようなことを書いたことがありますが、QWidgetとpaintEventを使用して、すべてのアセットを自分で描画し、連続して表示できるアセットの数を追跡します。QGraphicsViewを使用して簡単に実行できますか?
qt - Qtグラフィックビューで一定サイズのアイテムのバウンディングボックスを取得する
フラグが設定されQGraphicsItem
ているsのバウンディングボックス(シーンスペース内)を取得する必要があります。QGraphicsItem::ItemIgnoresTransformations
ドキュメントによると、これを行うにはQGraphicsItem :: deviceTransform()を使用する必要があります。私はこれを試しました:
しかし、何かがおかしいです。バウンディングボックスが小さく、アイテムの右側に表示されます...