問題タブ [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++ - QGraphicsItemの塗り直し
長方形内のテキストの色を定期的に変更したい。これが私の裁判です:
このコードは正しく機能しません。なにが問題ですか?
qt - QGraphicsView上にウィジェット(ボタンなど)を描画する
QGraphicsView上にQButtonsやLineEditsなどのインタラクティブウィジェットを描画するにはどうすればよいですか?たとえば、QGraphicsViewで画像を表示する画像編集アプリで画像上の領域を選択しましたが、この領域に名前を付けたいと思います。
したがって、この長方形の選択範囲の下に、線の編集と2つのボタン(十字と目盛り)を配置したいと思います。これらをどのように描くのですか?
サンプルコードはかっこいいでしょう!
c++ - QGraphicsViewフレームワークとパフォーマンスでの多くのポインターキャスト
QGraphicsSceneとQGraphicsItemの便利な関数のほとんど(items()、collidingItems()、childItems()など)はQListを返すため、多くのqgraphicsitem_castまたはstatic_castを実行する必要があり、QGraphicsItem :: Type()はシーンにさまざまな種類のアイテムがたくさんある場合は、実際のアイテムを入手してください。多くのサブクラスキャストを行うことは望ましいコーディングスタイルではないと思いましたが、この場合、他に実行可能な方法はないと思いますか、それともありますか?
上記のqgraphicsitem_castは、正しいタイプがすでに検証されているため、static_castに置き換えることができます。これらを常に行う場合(非常に動的なシーン)、多数のキャストは通常のif-else評価を超えてパフォーマンスに影響しますか?
c++ - 混乱を調整する
QGraphicsItemをサブクラス化し、ペイントを再実装しました。
ペイントでは、アイテムにラベルを付けるために次のようなものを書きました。
しばらくすると、別のアイテムでラベリングを処理するのが役立つかもしれないと思います。だから私はこのようなものを書きました。
ただし、2つの「テスト」図面が画面の同じ場所に表示されません。違いはアイテムの座標、つまりシーンの座標に関係しているのではないかと思います。QGraphicsItemインターフェイス内ですべてのmapFrom...とmapTo...の組み合わせを試しましたが、進行しませんでした。画面の同じ場所に絵を表示したい。
何が恋しい?
python - QGraphicsItem を pyqt で拡張する
QGraphicsItem を拡張して新しい種類のアイテムを定義するクラスを作成するにはどうすればよいですか?
私はそれをやろうとしています
しかし、私はこのエラーが発生します
私は何を間違っていますか?QGraphicsItemは抽象クラスであるため、Nodeのinitメソッド内で QGraphicsItem コンストラクターを呼び出すことはできません
c++ - スケールに基づいて QGraphicsTextItem のフォント サイズを計算する
にQGraphicsTextItem
オブジェクトがありQGraphicsScene
ます。ユーザーはQGraphicsTextItem
、角をドラッグしてオブジェクトを拡大縮小できます。(これを行うために、カスタムの「変換エディター」を使用しています。) ユーザーはQGraphicsTextItem
、プロパティ パネルからフォント サイズを変更して、のサイズを変更することもできます。私がやりたいのは、これらを統合して、ユーザーがマウスで角をドラッグしてオブジェクトをスケーリングすると、実際に舞台裏で「結果のオブジェクトをターゲットサイズに合わせて維持するために必要なサイズのフォント」を計算することです倍率は 1.0 ですか?"
私が今行っているのは、オブジェクトを通常どおりにスケーリングし、マウスのスケーリングが完了したらメソッドをQGraphicsItem::mouseMoveEvent
トリガーすることです。次に、このメソッドはフォントを適切なサイズに変更し、スケールを 1.0 に戻します。FinalizeMapScale
QGraphicsItem::mouseReleaseEvent
機能しているように見える解決策がありますが、私はそれに夢中ではありません。私は Qt と C++ の両方に比較的慣れていないので、コメントや修正をいただければ幸いです。
- この全体を設計するためのより良い方法はありますか?
- すでにこれを行っている Qt メソッドはありますか?
- メソッドは正しい軌道に乗っていますが、Qt または C++ エラーがありますか?
以下の私の回答にコメントして、お好みのソリューションを送信してください。ありがとう!
[編集]コメントで要求されているように、スケーリング コードの基本は次のとおりです。実際にはこれで別の方向に進んだため、このコード (および以下のコード) は使用されなくなりました。このコードはメソッド内にあり、マウスが右下の「ホット スポット」でクリックされた場合に、mouseMoveEvent
以前に「scaling_」フラグを true に設定しています。mousePressEvent
このコードは、スケーリングしているターゲットへのポインターを保持するデコレーター QGraphicsItem にあることに注意してください。この抽象化は私たちのプロジェクトには必要でしたが、おそらくほとんどの用途ではやり過ぎです。
python - qgraphicsitemの可動領域を制限する
QGraphicsItem
が設定されている場合、いいねQRect
を移動できる領域を制限する方法はありsetFlag(ItemIsMovable)
ますか?
私はpyqtが初めてで、マウスでアイテムを移動する方法を見つけようとしており、垂直/水平のみに制限しています。
python - QGraphicsView が QGraphicsItems を表示しない
PyQt4 を使用します。
私の目標は、.png の「部分」をロードし、それらを QGraphicsItems に割り当て、シーンに追加し、QGraphicsView に表示させることです。(今のところ、私は彼らの座標を気にしません。私が気にかけているのは、くそったれを機能させることだけです)。
現在、何も表示されていません。最初は、アイテムが追加されて QGraphicsView が更新されないという問題だと思っていましたが、ビューポートについてもう少し読んだ後、それは本当に意味がありませんでした。そのため、ビューを設定する前に QGraphicsView 項目を追加してテストしましたが (更新の問題ではないことがわかっています)、それでも何も表示されませんでした。パスは間違いなく正しいです。ここに何が起こっているかを示すいくつかのコードがあります...
間隔の問題を無視して、貼り付け時にレイアウトがめちゃくちゃになりました
--
TileBar の「changed()」シグナルをさまざまな「ビュー」関数に接続していくつか試してみましたが、どれも機能しませんでした。Graphics View Framework を使用する方法の良い例を見つけるのに少し苦労しました (ほとんどは非常に小規模です)。完全に間違っている場合はお知らせください。
どんな助けでも大歓迎です。ありがとう。
qt - QGraphicsViewにQGraphicsWidget/Itemを固定する(静的にする)方法
私はハッドのようなものを作りたいです。私はQGraphicsScene
巨大なを持っていますQPixmap
、それをはるかに小さいものに追加しましたQGraphicsView
。QLabel
次に、、、などのいくつかの制御要素を追加する必要がQPushButton
ありQGraphicsEllipseItem
ます。それは問題ではないと思います。この役立つページGraphicsViewClassesを見つけました。しかし、このコントロール要素をビューに固定するにはどうすればよいですか、あるいはそれらを固定しないようにするにはどうすればよいでしょうか?をドラッグすると、hudがの外にQPixmap
移動することを望まない。この問題を解決するには、何をする必要がありますか。誰かが私を助けてくれることを願っています。 QPixmap
QGraphicsView
qt - Qtでツリーノードをグラフィカルに表現するための最良の方法
Qtでツリーを視覚化しようとしています。
これまでのところ、私のノードはすべて単純な円で構成されており、QGraphicsItemクラスに基づいています。しかし、すべてのノードにテキストを表示する必要があります。QLabelをノードに「アタッチ」するにはどうすればよいですか?
前もって感謝します。