問題タブ [qgraphicspixmapitem]

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 に答える
4349 参照

qt - QGraphicsItem : 左上隅ではないアイテムの原点をエミュレートする

私のアプリケーションは Qt を使用しています。

QGraphicsPixmapItemを継承するクラスがあります。

これらのアイテムに変換 (回転など) を適用する場合、アイテムの原点 (またはピボット ポイント) は常に左上隅になります。

たとえば、アイテムの位置を設定するときに、実際にピックスマップの中心が変更されるように、この原点を変更したいと思います。

または、回転を適用する場合、回転の原点はピックスマップの中心になります。

私は Qt で箱から出してすぐにそれを行う方法を見つけていないので、次のようにitemChange()を再実装することを考えました:

Qtのドキュメントでは、アイテムの位置とその変換行列は2つの異なる概念であると述べているため、これでうまくいくと思いました。

しかし、それは機能していません。

何か案が ?

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

qt - qt - QGraphicsScene で特定のアイテムをキャッチする方法

私の中にはたくさんのものがありますQGraphicsScene。チェス盤を作成していて、グラフィックスシーンを使用している状況です。だから、QGraphicsSceneたくさん持っていQGraphicsPixmapItemsます。さて、これでどうやって王を手に入れることができますか。

更新: このでは、コインに過ぎないもの (ボード、キング、クイーン、ソルジャーなど) をQGraphicsScene追加しています。QGraphicsPixmapItems今、特定のコインを移動したい場合は、キングと言います。どうすれば入手できますか。イテレータを使用するような方法がいくつかあります。しかし、そのQGraphicsPixmapItem名前で特定のものを見つける方法はありますか。

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

c++ - Qgraphicspixmapitem のスケーリングと変換

スケーリングと変換中に問題が発生しましたQGraphicsPixmapItem。初期サイズが 100,100 のグラフィック エディターを作成しQGraphicsItem、その後、方法でサイズ変更と回転を行っていsetTransform()ます。

その後、この変換を保存し、これらの変換を使用して画像とビデオを表示しているプレーヤーと呼ばれる別のアプリケーションにこれらを使用していますQgraphicsPixmapItemsetTransform.

拡大・縮小・変形してもこのまま鮮明さを保てますか? 使用している画像は2560x1440ピクセルです。どんな助けでも大歓迎です。

コードは次のとおりです。

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

c++ - キーボードで QGraphicsPixmapItem を移動する

QgraphicsPixmapitem を介して追加されたキャラクターがあり、キーボードの矢印キーを押して移動したいと考えています。しかし、私は方法を見つけることができません。コンパイルエラーが発生します。お願い助けて!

moveship.h (私の QPixmapItem のヘッダー ファイル)

キーの押下を認識するかどうかを確認しているだけです。

keyPressEvent の実装:

私の主なソースファイル:

助けてください :(

編集:

私が得るコンパイルエラーは次のとおりです。

エラー: 'moveship::moveship(QPixmap&)' の呼び出しに一致する関数がありません
moveship * player = new moveship(q);

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

qt - QGraphicPixmapItem のダブルクリック イベントは、QGraphicsTextItem の送信中に親ウィジェットに移動しません

Qt にメイン ウィジェットがあり、このウィジェットにはQGraphicsViewandが含まれていQGraphicsSceneます。QGraphicsPixmapItemシーンでs とsを追加しQGraphicsTextItemます。私が扱うメインウィジェットではQWidget::mouseDoubleClickEvent ( QMouseEvent * event )、私のアイテムはすべてフラグが設定されています:

シーン内のアイテムを移動して選択したいので、ダブルクリックが発生したときにメインウィジェットがそれを処理したいからです。ダブルクリックするとメインウィジェットにQGraphicsTextItem入りますが、アイテムをダブルクリックすると、ダブルクリックを吸収してメインウィジェットに送信しません。また、フラグが設定されていない場合は、ダブルクリック イベントも吸収します。なぜそれが発生するのですか?s のサブクラスを実装したくなく、既に定義されているメソッドを使用したかったのです。これが私がしていることの写真です:mouseDoubleClickEventQGraphicsPixmapItemIsFocusableQGraphicsTextItem
QGraphicsItem

ここに画像の説明を入力

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

c++ - QGraphicsScene でズームおよび回転した QGraphicsPixmapItem の奇妙な描画動作

QGraphicsScene に QGraphicsPixmapItem があり、QGraphicsView でズームインして回転します。回転がない場合、またはズームインしすぎていない場合はすべてうまく機能しますが、ズームインすると (ピクセルが非常に目立ちます)、回転すると奇妙なことが起こります。画像が期待どおりに見える場合もあれば、ピックスマップが (部分的または完全に) 消えたり、画像に水平方向のグラデーションが表示される場合もあります (画像が回転しても水平のままです)。

グラデーションのある画像ここに画像の説明を入力

最初の画像は、別のグリッド (線の集まり) が上に配置されたチャート (色のグラデーションがあってはなりません) です。2 番目の画像は、私の最小限の例 (以下) からのもので、ピックスマップが部分的に欠落していることを示しています (ショットはピックスマップの端から遠く離れています)。

以下は、私が見ているもののほとんどを示す簡単な例です。

これを囲む他のファイルは、画像を含むリソース ファイル、UI に View を保持する QMainWindow クラス、およびメイン ウィンドウ クラスを実行する main です。これらはすべてGithub プロジェクトで利用できます。

マウスのスクロールホイールでズームイン、矢印キーで回転を再現(マウスでパンも可能)。十分にズームインして回転すると、ピックスマップは一部の角度で (部分的または完全に) 消えます。この例の勾配を再現することはまだできていませんが、これらは同じ問題の別の兆候にすぎないのではないかと考えています。

変換を SmoothTransformation に設定し、renderHint を Antialiasing と HighQualityAntialiasing の両方に設定しようとしましたが、どちらも大きな効果はありませんでした (アンチエイリアシングは高ズームでジャギーを滑らかにします)。さらに、QGraphicView、QGraphicsScene 関連の描画で多くのフラグを切り替えようとしました。これがなぜ起こっているのか、または私がそれに対処しようとすることができる理由を誰かが知っていますか?

Qt 4.8.2 と 10/18/16 に Qt の現在の安定版としてダウンロードした Qt 5.5.1 の両方でこの問題を確認しました。