問題タブ [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.
qt - QGraphicsScene::changed() は常に、アプリ ウィンドウのサイズに合わせて単一の四角形を返します
Qt 4.7.1 Windows アプリでは、QGraphicsScene::changed() に接続されているスロットが期待どおりに起動されますが、ダーティ リージョン カウントは常に 1 であり、得られる rect サイズは常にアプリ ウィンドウと同じです。QGraphicsView::setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate); を呼び出してみました。しかし、それは役に立ちませんでした。
変更されたページの領域のみを提供するように Qt に指示する方法はありますか?
qt - QGraphicsView 右ボタン マウス プレス イベントの問題
QGraphicsView クラスから再実装された View クラスがあります。
マウスを右ボタンでクリックしたときに線を引こうとしています。
これが私のmousePressEvent、mouseReleaseEvent、およびmouseMoveEventコードです:
p>しかし、このコードは正しく動作しません。マウスのリリース イベントとマウスの移動イベントを適切にキャッチしません。if(event->button() == Qt::LeftButton ) を設定すると、期待どおりに動作します。
また、Qt::MidButton を試してみましたが、うまくいきました。
RightButton の問題は何ですか?
c++ - QGraphicsViewは、関連するグラフィックシーンの所有権を引き継ぎますか?
グラフィックシーンを割り当てたら…
グラフィックビューに関連付けます
グラフィックビューはシーンの所有権を取得しますか?つまり、グラフィックビューはデストラクタのシーンを削除しますか、それとも自分でシーンを削除する必要がありますか?
performance - QGraphicsScene/QGraphicsView のパフォーマンス
プロジェクトで QGraphicsScene/QGraphicsView のペアを使用していますが、このペアにはパフォーマンスの問題があります。カスタム グラフィック アイテムをシーンに追加し、コンテンツをビューで表示しました。その後、カスタム グラフィックス アイテムの paint メソッドがシーンによって継続的に呼び出されます (無限ループのように)。これにより、CPU 使用率が 25% になります (シーンで約 400 アイテム)。この動作の原因は何ですか?
これが私のアイテムの実装の1つです:
xml ファイルから x 座標と y 座標を読み取ります。このアイテムの x 座標と y 座標はそれぞれ 239,344 です
c++ - qgraphicsviewのsvg画像の透明部分でのマウスイベントを無視しますか?
かなりの数の svg 画像を含むグラフィック ビュー (C++ と Qt を使用) に取り組んでいます。それらのクリックをインターセプトしますが、マウスが svg アイテムの透明な部分の上にあるときにイベントを受信したくない (または無視できるようにしたい)。
出来ますか ?
svg ファイルは、そのような使用のために特別に設計されるべきですか?
私が(まだ)聞いたことのない隠されたQtオプションはありますか?
c++ - QGraphicsViewのサイズを取得する
あるサイズを知りたいQGraphicsView
。ウィジェットはグリッドレイアウトの一部であるため、そのサイズは固定されていません。と同等の高さを使用this->ui->myGraphicsView->width()
してみましたが、これらの値は正確ではありません。
の現在のサイズを取得するにはどうすればよいQGraphicsView
ですか?
c++ - Qt でのインタラクティブな QGraphicsView の実装で、マウス カーソルの変更に問題があるのはなぜですか?
アプリケーションで画像を含む MDI ウィンドウを表示する必要があります。マウスの右ボタンを使用して画像をドラッグ スクロールし、マウス ホイールを使用して画像をズームし、それらの上に多角形の関心領域マスクを作成できるようにしたいと考えました。この目的のために、いくつかのマウス イベントを再実装するカスタム QGraphicsView 派生クラス (ImageView) を作成しました。アプリケーションのインターフェイスでカーソルのピクセル位置インジケーターを更新するホバー イベントを実装するための QGraphicsPixmapItem 派生クラス (ImageItem) もあります。概要は次のとおりです (マスク ポリゴンはまだ実装されていません)。
私の最初の問題は、ビューで startAoi() をアクティブにする前にすべてが正常に機能することです (ユーザーが押す GUI のボタンに接続されています)。その前に、パンは正常に機能し、マウス カーソルが開いた手に変わります。AOI モードをアクティブにした後、画像上でカーソルが十字に変わり、右ボタンを押してドラッグするとビューがパンしますが、画像アイテムのカーソルがビューのカーソルよりも優先されるかのように、カーソルは変更されません。AOI モードを無効にすると、クロス カーソルが消え、ホバー イベントがトリガーされなくなります。
編集:基本的に、QGraphicsItem のように見えますが、unsetCursor() はカーソル自体を削除するのではなく、永続的で親ビューのカーソルをオーバーライドする標準の矢印に変更します。
もう 1 つの問題は、マウス処理全体が正しくレイアウトされているかどうかわからないことです。たとえば、ビュー、シーン、またはイメージ アイテムのマウス イベント オーバーライドでパンとズームを処理する必要があるかどうかわかりません。それらはビュー全体(将来的には他のオブジェクトを含む)に対してグローバルであるため、これは一番上の項目であるビューに属しているはずです。また、イベントでいつ accept() と ignore() を呼び出す必要があるのか、これが実際に何をするのか、親クラスのマウス イベントの実装をいつ呼び出す必要があるのか もわかりません。どんな洞察も大歓迎です。
c++ - このデータ バッファを QImage に表示する方法
QImage に表示しようとしている画像があります。
これは、rows*cols イメージを生成するコードのスニペットです。
ご覧のとおり、私のデータ バッファは「行の高さ」で、「列 * 3 の幅」です。
rgbMapped は unsigned char** 配列です。QTコードに戻ると、次のようになります。
ImagePixMapItem は、いくつかのマウス イベントをインターセプトできるようにするために作成した QGraphicsPixmapItem ですが、ペイント関数などを操作することはありません。
このコードを実行すると、私のイメージに似たイメージとして返されますが、3 つのコピー (1 つは緑がかった色、もう 1 つは黄色がかった色、もう 1 つは目立つ紫がかった色) があります。
この 3 つのデータを重ね合わせたら、おそらく正しいイメージになるのではないでしょうか。
qt - QGrahicsRectItemを使用して、アイテム自体よりも大きい長方形をドラッグします
のに問題がQGrahicsRectItem
ありQGraphicsScene
ます。マウスでアイテムを動かせるようにしたいと思います。しかし、問題は、私の場合、ドラッグする長方形がアイテム自体よりも大きいことです。
これが私が使用するコードです:
したがって、プログラムを実行すると、このウィンドウが表示され、アイテムをドラッグできます。すべて問題ないようです。
しかし、よく見ると、ドラッグゾーンはアイテム自体よりも大きくなっています。(次のスクリーンショットの青い長方形を参照してください)青い長方形は、この長方形内でマウスを動かすと、カーソルが変わり、アイテムをドラッグできることを意味します。
問題は「fitInView(scene()->sceneRect());」に関連していると感じています。ライン。削除すれば動作します。たとえば、「scale(5,1)」を追加すると、同じ問題が発生します。
問題が何であるかについての考えがありますか?
events - pyqt グラフィックアイテムのマウス入力イベント
QGraphicsScene に配置され、QGraphicsView を介して視覚化される QGraphicsItems のマウス入力イベントに接続しようとしています。私が理解していることから、これをオーバーライドするメソッドは、QGraphicsItem (またはそのサブクラスの 1 つ) から派生したクラスの dragEnterEvent です。私の試みは次のようになります。
上記のスニペットで、私が何をしようとしているのかが明確になることを願っています。表示は希望どおりに生成されますが、問題はありません。ただし、描画されるポリゴンは入力イベントに応答しません。dragEnterEvent() が呼び出されているという証拠は見られません。