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

0 投票する
3 に答える
1725 参照

c++ - Qt:mouseMoveEventと子オブジェクトのhoverEnterEventに干渉します

私はQGraphicsView、コネクタを持つ要素を含む一種のサーカットエディタを作成するために使用します。それらのコネクタをワイヤで接続できるはずです。ただし、あるコネクタから別のコネクタにドラッグしているときに、Qtがマウスをつかみ、他のコネクタが受信を停止するという問題がありますhoverEnterEvent。ところで、ホバーコネクタではサイズが変更されるため、コネクタを叩きやすくなります。

繰り返しますが、ドラッグ中にマウスをつかまないことは可能ですか?

Qt 4.5forWindowsを使用しました。

要求に応じて、ここにいくつかのソースがあります:http: //pastebin.com/m422b9495

0 投票する
3 に答える
5158 参照

qt - QGraphicsView-マウスとキーボードのスクロールを無効にする方法

私のアプリケーションでは、pixmapが追加されたQGraphicsSceneがあり、すべてがスクロールバーをオフにしてQGraphicsViewで表示されます。プログラムウィンドウはピックスマップよりも小さく、矢印キーを押すかマウスホイールを動かすと、ピックスマップが移動します。

ピックスマップがウィンドウよりも大きい場合でも、イベントを使用しない限り、キーボードやマウスで移動しないようにするには、どうすれば無効にできますか?

(インタラクティブプロパティをfalseに設定しようとしましたが、機能しませんでした)

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

c++ - レイアウトとウィジェットで QGraphicsScene を使用するにはどうすればよいですか

Qt4でウィジェットを表示するグラフィックデータを作成していますが、それを使用したり、データ項目のQGraphicsScene作成などに誘惑されました.QGraphicsItem

ただし、コントロールのレイヤーを追加したかった (例: スクロールバー、ズーム + その他のボタン - Google マップなどと同様のスタイルにしたい、つまり、ウィジェット全体にデータが表示され、ボタンはそれらの上に表示されます) ウィジェットに。したがって、それらをシーンに追加することは実行可能かもしれないと考えました (おそらく、データの上に表示される a の子としてQGraphicsGroupItem)。しかし、ウィジェット全体のサイズを変更するときにそれらを移動してサイズ変更したいので、QGraphicsLayoutそれらを管理するために a を使用する必要があります。しかし、この時点で、物事はかなり複雑であることがわかりました。

問題は、 を使用する場合QGraphicsLayout、次の制約が成り立つことです。

  1. レイアウトQGraphicsWidgetで管理できるのは
  2. QGraphicsLayoutの子を管理するためにのみ使用できますQGraphicsWidget

つまり、コントロールを として作成しQGraphicsWidget、トップ レベルQGraphicsWidgetをデータ ウィジェットに追加し、このトップ レベル ウィジェットのサイズを自分で管理する必要があります。

だから私は尋ねたい:

  1. 従来のアプローチ (つまり、すべてのコントロールにプレーンな古いウィジェットを使用QGraphicsSceneし、データを表示するためだけに使用する) の方が合理的ではないでしょうか?

  2. この場合に使用する利点はありますかQGraphicsScene(パフォーマンスまたはシンプルさ...)?

  3. QGraphicsSceneその強みを活かすにはどうすればいいの?

0 投票する
5 に答える
12602 参照

qt - カスタム QGLWidget で Qt の QGraphicsView::setViewport を呼び出す

次のように、以前に QGLWidget から派生しました。

ただし、カスタム QGLWidget をビューポートとして使用して QGraphicsView を初期化しようとすると、initializeGL が呼び出されないことがわかりました (Qt ライブラリ内にブレークポイントを設定しても、QGLWidget::initializeGL() がプレーンに作成された場合も同様です)。

現在 MyGLWidget::initializeGL() に存在するコードを配置する正しい場所はどこですか?

0 投票する
3 に答える
859 参照

qt - Qt の 2 つの QGraphicScene インスタンスで同じモデルを共有する

QGraphicsScene オブジェクトを使用してダイアグラムのエディターを表示するアプリケーションがあります。同じダイアログの読み取り専用バージョンを作成したいのですが、ユーザーが両方を同時に表示できるようにします。

QGraphicsScene の 2 つのインスタンスを作成し、2 番目のインスタンスで addItem を使用すると、最初のアイテムからすべてのアイテムが削除されます。Qt はシーン間のモデルの共有をサポートしていますか? 同じシーンを持ってビューをカスタマイズしようとする唯一の選択肢はありますか? オブジェクトの選択情報が共有されているグラフィックス項目内にあるため、後で機能しないようです。フラグを無効にすると、両方のビューで読み取り専用になります。アドバイスをいただければ幸いです。ありがとう。

0 投票する
5 に答える
14003 参照

c++ - QGraphicsViewおよびQGraphicsItem:ビューを拡大縮小するときにアイテムを拡大縮小しない

QGraphicsViewQtのサブクラスとサブクラスを使用していQGraphicsItemます。ビューの長方形が変更されたとき、たとえばズームインしたときに、ビュー内のアイテムのグラフィック表現を拡大縮小しない方法はありますか。デフォルトの動作では、アイテムはビューの長方形に対して拡大縮小されます。

ビューを拡大するときに拡大縮小されない細い長方形で表される2Dポイントを視覚化したいと思います。頂点が常に同じサイズで表示される、一般的な3Dモデリングソフトウェアを参照してください。

ありがとう!

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

c++ - QGraphicsTextItem の QPixmap

QGraphicsTextItem を QPixmap に変換/ペイントするにはどうすればよいですか?

0 投票する
6 に答える
20220 参照

c++ - QGraphicsView の可視長方形を取得しますか?

私はこれで何時間も髪を引っ張っています。ここにスレッドがありますが、何も機能していないようです。QGraphicsView::rect() は幅と高さを返しますが、値lefttop値が正しく設定されていません (常に 0 -- スクロール量を無視します)。シーン座標でそれが欲しいのですが、どのシステムからでも簡単に変換できるはずです。何とhorizontalScrollBar()->value()vert が戻ってきたのかわかりません...意味のないおしゃべりのようです。


@ファブリツィオ:

0 投票する
3 に答える
2009 参照

python - 自動アイテム配置を備えたQGraphicsView

QGraphicsViewを使用してアセットブラウザを作成したいと思います。QGraphicsViewとQGraphicsItemsを使用した例とは少し異なります。これは、スクロールバーを1つだけにし、ビューポートのサイズが変更されたときにアイテムを自動的に移動するためです。たとえば、ビューポートの幅が4つのアセットを表示するのに十分な大きさの場合、次のように表示する必要があります。

ただし、ビューポートが縮小され、連続して3つしか含めることができない場合は、次のように表示されます。

それらのアセットを自分で移動して、グラフィックスビューにすべてを管理させる必要はありません。どういうわけか可能ですか?

私は一度そのようなことを書いたことがありますが、QWidgetとpaintEventを使用して、すべてのアセットを自分で描画し、連続して表示できるアセットの数を追跡します。QGraphicsViewを使用して簡単に実行できますか?

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

qt - Qtグラフィックビューで一定サイズのアイテムのバウンディングボックスを取得する

フラグが設定されQGraphicsItemているsのバウンディングボックス(シーンスペース内)を取得する必要があります。QGraphicsItem::ItemIgnoresTransformations

ドキュメントによると、これを行うにはQGraphicsItem :: deviceTransform()を使用する必要があります。私はこれを試しました:

しかし、何かがおかしいです。バウンディングボックスが小さく、アイテムの右側に表示されます...