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

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

c++ - QGraphicsViewに合うようにQGraphicsItemをズームします

私は誰かがウィンドウのサイズに合うようにQGraphicsView電流をスケーリングできるようにするを作成しようとしています。QGraphicsItemQGraphicsView

カスタムバージョンを作成するためにオーバーライドQGraphicsItemし、いくつかのメソッドを実装して、スケーリングされた量を認識しました(これは常に元のバージョンに比例するため、スケール係数は1つだけです。幅と高さは同じです)。

したがって、scaleFactorセッターには次のものがあります。

そして、私のメインフォームでは、ボタンに次のものがあります。

itemそれらの1つはどこにありますかImagePixmapItem

これは最初はうまく機能します-私の画像はビューポートよりも大きく、ウィンドウに合うように(少なくとも幅に関して)うまく縮小されます。ただし、もう一度ボタンを押すとscaleFactorXitem幅と高さが同じ値に戻ります。

boundingRect変換後の画像を変更できますか?そうでない場合は、どうすればよいですか?

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

qt - QPainterPath の成長/展開

QPainterPathPhotoshop の Selection > Grow... (または Expand...) コマンドのように、それを取得して展開する方法はありますか?

QPainterPath返された fromを取得し、QGraphicsItem::shapeそれを a の基礎として使用したいと考えていQGraphicsPathItemます。しかし、私は形状を特定の量、たとえば 10 ピクセルだけ拡大したいと考えています。次に、この拡張された形状の周りに細い輪郭を描きます。

の幅を 20 に設定することで、これ行うことができます(内側の半分と外側の半分を描画QPenするため、希望の幅 * 2)。QGraphicsPathItemこれにより、正しい外側の形状が得られますが、醜い太い線が表示されます。この形状を取得して細い線で輪郭を描く方法は (私にはわかりますが) ありません。

クラスは有望に見えますQPainterPathStrokerが、私がやりたいことを成し遂げることができないようです。

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

c++ - QGraphicsItem をそのままにしておくように強制する

QGraphicsScene満たされた がQGraphicsItemsあり、ユーザーはパンやズームを行ってさまざまな をすべて調べることができますQGraphicsItems。ただし、 QGraphicsTextItem常に画面の左上に表示されるラベルが必要です。ズームを無視するのは簡単ですがsetFlags(QGraphicsItem::ItemIgnoresTransformations)、位置を強制的に左上に固定する方法はまだわかりません。自分のレーベルを同じ場所に "浮かせる" ための最良の方法は何ですか?

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

qt - 変換後の QGraphicsItem のサイズを見つける方法

私のpyqtコードの一部でQGraphicsItemをスケーリングしています。コードの別のセクションで self.rect.adjusted(0, 0, 0, 0) を呼び出すと、変換前の寸法が返されます。私の質問は、変換後の寸法をどのように見つけることができますか?

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

qt - QGraphicsObject のシーンイベントで位置の計算を実行できないのはなぜですか?

QTouchEvents で QGraphicsObject を実装し、sceneEvent 関数を再実装しました。

私の問題は、アイテムに触れると、アイテムの右上隅がタッチポイントになることです。タッチしたポイントを内側にオフセットしたい。ただし、これを行うと、一度に 1 つのアイテムしか移動できません。

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

qt - QGraphics シーンのズームインとズームアウト

ここでも、グラフィック シーンで QGraphicsPixmapItem をズームインおよびズームアウトする方法について心配しています。これを行うための直接的な方法を探しましたが、グラフィックス シーンやピックス マップで見つけることができませんでした。誰かがこれで私を助けることができますか?QGraphicsPixmapItem を拡張し、このためのメソッドを実装する必要がありますか?

助けてくれてありがとう。本当に感謝しています。

〜タランガ

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

qt - QGraphicsSceneの拡張

拡張QGraphicsItemされたに追加されるように拡張していQGraphicsSeneます。拡張アイテムをシーンに追加し、シーンをグラフィックスビューに通常の方法で追加すると、画像が表示されますが、次のように画像を追加すると、表示されません。誰かがこれをチェックして問題を教えてください。

ヘッダ

ソース

主要

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

c++ - Qt: 長方形ではない QWidget を重ねることはできますか?

長方形以外のカスタムQWidget(例: 円形のボタン) が複数ある場合、それらを重ねることはできますか?

ウィジェットのどの部分が不透明であるかを Qt に知らせる方法がないように思われるため、マウス イベントは正しいものに配信されますQWidget(Qt は、各ウィジェットがその境界矩形を占有していると想定しているようです)。

代わりにこれらのウィジェットをQGraphicsItems にする必要がありますか?

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

c++ - QGraphicsItem 挿入順

QGraphicsItem の整理に QGraphicsScene + QGraphicsView を使用するプロジェクトがあります。すべてのグラフィック アイテムは移動および選択可能です。

問題は、シーンに新しい QGraphicsItem を挿入し、このアイテムが前のアイテムよりも大きい場合、マウスで選択できないことです。

Qtのドキュメントから:

デフォルトでは、すべての兄弟アイテムは挿入順に積み上げられます (つまり、追加した最初のアイテムは、次に追加するアイテムの前に描画されます)。2 つのアイテムの Z 値が異なる場合、Z 値が最も高いアイテムが上に描画されます。Z 値が同じ場合は、挿入 > 順序によって重なり順が決まります。

質問、グラフィック アイテムの挿入順序を変更するにはどうすればよいですか?

QGraphicsView の mousePressEvent をサブクラス化し、stackBefore() メソッドのヘルプを使用して挿入順序を変更しようとしています。すべてのアイテムが混ざり合って重なり合っている場合、必要なアイテムを選択するために多くのクリックを行う必要があります。

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

c++ - QGraphicsScene に何も表示されない

qgraphicsview qgraphicsitem を使用して、チェスのようなシーンを作成しようとしています。

公式の例に従って作成しようとしていますが、何も表示されません。コードはほとんど同じです。最初に、私は自分の Cell クラスを疑問に思います。だから私は四角形を描こうとしています。しかし、何も表示されません。以下は私のコードです。誰かが私を助けてくれますか。Windows 7 で Qt 4.7 を使用しています

Cell.h

セル.cpp

view.h

ビュー.cpp

メインウィンドウ.h

メインウィンドウ.cpp

main.cpp