QGraphicsView Class

QGraphicsViewクラスは、QGraphicsScene の内容を表示するためのウィジェットを提供する

ヘッダー #include <QGraphicsView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QAbstractScrollArea

パブリックな型

flags CacheMode
enum CacheModeFlag { CacheNone, CacheBackground }
enum DragMode { NoDrag, ScrollHandDrag, RubberBandDrag }
enum OptimizationFlag { DontSavePainterState, DontAdjustForAntialiasing, IndirectPainting }
flags OptimizationFlags
enum ViewportAnchor { NoAnchor, AnchorViewCenter, AnchorUnderMouse }
enum ViewportUpdateMode { FullViewportUpdate, MinimalViewportUpdate, SmartViewportUpdate, BoundingRectViewportUpdate, NoViewportUpdate }

プロパティ

パブリック関数

QGraphicsView(QWidget *parent = nullptr)
QGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr)
virtual ~QGraphicsView()
Qt::Alignment alignment() const
QBrush backgroundBrush() const
QGraphicsView::CacheMode cacheMode() const
void centerOn(const QPointF &pos)
void centerOn(const QGraphicsItem *item)
void centerOn(qreal x, qreal y)
QGraphicsView::DragMode dragMode() const
void ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50)
void ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50)
void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)
void fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
void fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
void fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
QBrush foregroundBrush() const
bool isInteractive() const
bool isTransformed() const
QGraphicsItem *itemAt(const QPoint &pos) const
QGraphicsItem *itemAt(int x, int y) const
QList<QGraphicsItem *> items() const
QList<QGraphicsItem *> items(const QPoint &pos) const
QList<QGraphicsItem *> items(int x, int y) const
QList<QGraphicsItem *> items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QPainterPath mapFromScene(const QPainterPath &path) const
QPoint mapFromScene(const QPointF &point) const
QPolygon mapFromScene(const QPolygonF &polygon) const
QPolygon mapFromScene(const QRectF &rect) const
QPoint mapFromScene(qreal x, qreal y) const
QPolygon mapFromScene(qreal x, qreal y, qreal w, qreal h) const
QPainterPath mapToScene(const QPainterPath &path) const
QPointF mapToScene(const QPoint &point) const
QPolygonF mapToScene(const QPolygon &polygon) const
QPolygonF mapToScene(const QRect &rect) const
QPointF mapToScene(int x, int y) const
QPolygonF mapToScene(int x, int y, int w, int h) const
QGraphicsView::OptimizationFlags optimizationFlags() const
void render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)
QPainter::RenderHints renderHints() const
void resetCachedContent()
void resetTransform()
QGraphicsView::ViewportAnchor resizeAnchor() const
void rotate(qreal angle)
QRect rubberBandRect() const
Qt::ItemSelectionMode rubberBandSelectionMode() const
void scale(qreal sx, qreal sy)
QGraphicsScene *scene() const
QRectF sceneRect() const
void setAlignment(Qt::Alignment alignment)
void setBackgroundBrush(const QBrush &brush)
void setCacheMode(QGraphicsView::CacheMode mode)
void setDragMode(QGraphicsView::DragMode mode)
void setForegroundBrush(const QBrush &brush)
void setInteractive(bool allowed)
void setOptimizationFlag(QGraphicsView::OptimizationFlag flag, bool enabled = true)
void setOptimizationFlags(QGraphicsView::OptimizationFlags flags)
void setRenderHint(QPainter::RenderHint hint, bool enabled = true)
void setRenderHints(QPainter::RenderHints hints)
void setResizeAnchor(QGraphicsView::ViewportAnchor anchor)
void setRubberBandSelectionMode(Qt::ItemSelectionMode mode)
void setScene(QGraphicsScene *scene)
void setSceneRect(const QRectF &rect)
void setSceneRect(qreal x, qreal y, qreal w, qreal h)
void setTransform(const QTransform &matrix, bool combine = false)
void setTransformationAnchor(QGraphicsView::ViewportAnchor anchor)
void setViewportUpdateMode(QGraphicsView::ViewportUpdateMode mode)
void shear(qreal sh, qreal sv)
QTransform transform() const
QGraphicsView::ViewportAnchor transformationAnchor() const
void translate(qreal dx, qreal dy)
QTransform viewportTransform() const
QGraphicsView::ViewportUpdateMode viewportUpdateMode() const

再実装パブリック関数

virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSize sizeHint() const override

パブリック・スロット

void invalidateScene(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)
void updateScene(const QList<QRectF> &rects)
void updateSceneRect(const QRectF &rect)

シグナル

void rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)

保護された関数

virtual void drawBackground(QPainter *painter, const QRectF &rect)
virtual void drawForeground(QPainter *painter, const QRectF &rect)

再実装された保護された関数

virtual void contextMenuEvent(QContextMenuEvent *event) override
virtual void dragEnterEvent(QDragEnterEvent *event) override
virtual void dragLeaveEvent(QDragLeaveEvent *event) override
virtual void dragMoveEvent(QDragMoveEvent *event) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void inputMethodEvent(QInputMethodEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void keyReleaseEvent(QKeyEvent *event) override
virtual void mouseDoubleClickEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void scrollContentsBy(int dx, int dy) override
virtual void showEvent(QShowEvent *event) override
virtual bool viewportEvent(QEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

保護されたスロット

virtual void setupViewport(QWidget *widget) override

詳細説明

QGraphicsViewは、スクロール可能なビューポートでQGraphicsScene 。幾何学的なアイテムを含むシーンを作成するには、QGraphicsScene のドキュメントを参照してください。QGraphicsViewはGraphics View Frameworkの一部です。

シーンを視覚化するには、まずQGraphicsViewオブジェクトを構築し、視覚化したいシーンのアドレスをQGraphicsViewのコンストラクタに渡します。あるいは、setScene ()を呼び出して、後でシーンを設定することもできます。show()を呼び出した後、ビューはデフォルトでシーンの中心にスクロールし、この時点で表示されているすべてのアイテムを表示します。例えば

QGraphicsScene scene;
scene.addText("Hello, world!");

QGraphicsView view(&scene);
view.show();

スクロールバーを使用するか、centerOn ()を呼び出すことで、シーン上の任意の位置に明示的にスクロールできます。centerOn()にポイントを渡すことで、QGraphicsViewはビューポートをスクロールし、ポイントがビューの中央に来るようにします。QGraphicsItemこの場合、QGraphicsViewはアイテムの中心がビューの中央に来るようにします。ある領域が確実に表示されるようにしたいだけであれば(必ずしも中央に表示される必要はない)、代わりにensureVisible ()を呼び出すことができます。

QGraphicsViewは、シーン全体を視覚化するために使用することも、シーンの一部だけを視覚化するために使用することもできます。視覚化される領域は、デフォルトでは、ビューが初めて表示されるときに自動的に検出されます(QGraphicsScene::itemsBoundingRect ()を呼び出すことによって)。視覚化領域の矩形を自分で設定するには、setSceneRect() を呼び出します。これにより、スクロールバーの範囲が適切に調整されます。シーンは実質的に無制限のサイズをサポートしますが、スクロールバーの範囲は整数(INT_MIN、INT_MAX)の範囲を超えることはないことに注意してください。

QGraphicsViewは、render ()を呼び出すことでシーンを視覚化します。デフォルトでは、アイテムは通常のQPainter 、デフォルトのレンダーヒントを使用してビューポートに描画されます。アイテムを描画するときにQGraphicsViewがQPainter に渡すデフォルトのレンダーヒントを変更するには、setRenderHints ()を呼び出します。

デフォルトでは、QGraphicsViewはビューポート・ウィジェットに通常のQWidget 。このウィジェットには、viewport()を呼び出すことでアクセスできます。また、setViewport()を呼び出すことで置き換えることもできます。OpenGLを使用してレンダリングするには、単純にsetViewport(newQOpenGLWidget) を呼び出します。QGraphicsViewはビューポート・ウィジェットのオーナーシップを取ります。

QGraphicsView は、QTransform を使用して、アフィン変換をサポートしています。setTransform ()に行列を渡すか、便利な関数rotate ()、scale ()、translate ()、shear ()のいずれかを呼び出すことができます。最も一般的な2つの変換は、拡大縮小と回転です。QGraphicsViewは、変換の間、ビューの中心を固定します。シーンアライメント(setAlignment())のため、ビューを平行移動しても視覚的な影響はありません。

マウスとキーボードを使って、シーン上のアイテムを操作することができます。QGraphicsViewは、マウスとキーのイベントをシーンイベント(QGraphicsSceneEvent を継承したイベント)に変換し、視覚化されたシーンに転送します。最終的に、イベントを処理し、それらに反応するのは個々のアイテムです。例えば、選択可能なアイテムをクリックすると、そのアイテムは通常、選択されたことをシーンに知らせ、また、選択矩形を表示するために自身を再描画します。同様に、マウスをクリックしてドラッグして移動可能なアイテムを動かすと、そのアイテムがマウスの動きを処理し、自分自身を動かします。アイテムのインタラクションはデフォルトで有効になっており、setInteractive ()を呼び出すことで切り替えることができます。

QGraphicsViewのサブクラスを作成し、マウスとキーのイベントハンドラを再実装することで、独自のシーンインタラクションを提供することもできます。QGraphicsViewは、ビュー内のアイテムとのインタラクションを簡素化するために、マッピング関数mapToScene ()とmapFromScene ()、およびアイテム・アクセッサitems ()とitemAt ()を提供しています。これらの関数を使用すると、ビュー座標とシーン座標の間で点、矩形、多角形、パスをマッピングしたり、ビュー座標を使用してシーン上のアイテムを見つけることができます。

QOpenGLWidget をビューポートとして使用する場合、立体視レンダリングがサポートされます。これはQOpenGLWidget::paintGL と同じパターンで行われます。これを有効にするには、QSurfaceFormat::StereoBuffers フラグを有効にします。このフラグは内部的に処理されるため、QSurfaceFormat::setDefaultFormat() を使用してウィンドウを作成する前に、QSurfaceFormat::StereoBuffers フラグをグローバルに設定します。このフラグが有効で、立体視レンダリングのハードウェアサポートがある場合、drawBackground() とdrawForeground() が各フレームで 2 回トリガされます。現在どのバッファに描画されているかを問い合わせるには、QOpenGLWidget::currentTargetBuffer ()を呼び出します。

注意: OpenGLビューポートを使用すると、QGraphicsProxyWidget の使用が制限されます。このようなセットアップでは、ウィジェットとスタイルのすべての組み合わせをサポートできるわけではありません。UIを注意深くテストし、必要な調整を行う必要があります。

QGraphicsSceneQGraphicsItemQGraphicsSceneEventも参照して ください。

メンバ型ドキュメント

enum QGraphicsView::CacheModeFlag
flags QGraphicsView::CacheMode

この enum は、QGraphicsView のキャッシュ・モードに設定できるフラグを記述します。

定数説明
QGraphicsView::CacheNone0x0すべてのペイントはビューポートに直接行われます。
QGraphicsView::CacheBackground0x1背景はキャッシュされます。これは、カスタム背景と、backgroundBrush プロパティに基づく背景の両方に影響します。このフラグが有効な場合、QGraphicsView はビューポートのフルサイズで 1 つの pixmap を割り当てます。

CacheMode 型は、QFlags<CacheModeFlag> の typedef です。CacheModeFlag 値の OR の組み合わせを格納します。

cacheModeも参照してください

enum QGraphicsView::DragMode

この列挙型は、ビューポート上でマウスを押したままドラッグしたときのビューのデフォルトの動作を記述します。

定数説明
QGraphicsView::NoDrag0何も起こりません; マウスイベントは無視されます。
QGraphicsView::ScrollHandDrag1カーソルはポインティングハンドに変わり、マウスをドラッグするとスクロールバーをスクロールします。このモードはinteractive と非インタラクティブモードの両方で動作します。
QGraphicsView::RubberBandDrag2ラバーバンドが表示されます。マウスをドラッグすると、ラバーバンドのジオメトリが設定され、ラバーバンドに覆われたすべてのアイテムが選択されます。このモードは、非インタラクティブビューでは無効です。

dragMode およびQGraphicsScene::setSelectionArea()も参照してください

enum QGraphicsView::OptimizationFlag
flags QGraphicsView::OptimizationFlags

この列挙型は、QGraphicsView のレンダリングパフォーマンスを向上させるために有効にできるフラグを記述します。 デフォルトでは、これらのフラグは設定されていません。通常、フラグを設定すると副作用が発生し、この影響はペイントデバイスやプラットフォームによって異なる可能性があることに注意してください。

定数説明
QGraphicsView::DontSavePainterState0x1レンダリング時、QGraphicsView は、背景や前景のレンダリング時、および各アイテムのレンダリング時に、ペインターの状態 (QPainter::save() を参照) を保護します。これにより、ペインターの状態を変更したままにしておくことができます (つまり、ペイント後に状態を復元せずにQPainter::setPen() やQPainter::setBrush() を呼び出すことができます)。しかし、アイテムが一貫して状態を復元する場合は、QGraphicsView が同じことをしないように、このフラグを有効にする必要があります。
QGraphicsView::DontAdjustForAntialiasing0x2QGraphicsView の露出部分のアンチエイリアス自動調整を無効にします。QGraphicsItem::boundingRect() の境界でアンチエイリアスされた線をレンダリングするアイテムは、線の一部を外側にレンダリングしてしまうことがあります。レンダリングのアーチファクトを防ぐために、QGraphicsView は、すべての露出領域をすべての方向に 2 ピクセル拡張します。このフラグを有効にすると、QGraphicsView はこれらの調整を行わなくなり、再描画が必要な領域が最小化され、パフォーマンスが向上します。一般的な副作用として、アンチエイリアスを使用して描画するアイテムが移動すると、描画の跡がシーンに残ることがあります。
QGraphicsView::IndirectPainting0x4Qt 4.6 以降では、QGraphicsView::drawItems() と QGraphicsScene::drawItems() を呼び出す古い描画アルゴリズムを復元します。古いコードとの互換性のためだけに使用します。

OptimizationFlags 型はQFlags<OptimizationFlag> の typedef です。OptimizationFlag 値の OR の組み合わせを格納します。

enum QGraphicsView::ViewportAnchor

この列挙型は、ユーザがビューのサイズを変更したときや、ビューが変形したときにQGraphicsView が使用できるアンカーを記述します。

定数説明
QGraphicsView::NoAnchor0アンカーなし、すなわち、ビューはシーンの位置を変更せずに残します。
QGraphicsView::AnchorViewCenter1ビューの中心にあるシーンポイントは、アンカーとして使用されます。
QGraphicsView::AnchorUnderMouse2マウスの下の点がアンカーとして使用されます。

resizeAnchor およびtransformationAnchorも参照してください

enum QGraphicsView::ViewportUpdateMode

この列挙型は、シーンのコンテンツが変更されたり、公開されたりしたときに、QGraphicsView 、そのビューポートをどのように更新するかを記述する。

定数説明
QGraphicsView::FullViewportUpdate0シーンの可視部分が変更されたり、再露出されたりすると、QGraphicsView はビューポート全体を更新します。このアプローチは、QGraphicsView が描画に費やす時間よりも、何を描画すべきかを把握することに時間を費やす場合(例えば、非常に多くの小さなアイテムが繰り返し更新される場合)に最も速くなります。これは、QOpenGLWidget のような部分更新をサポートしないビューポートや、スクロールの最適化を無効にする必要があるビューポートに好ましい更新モードです。
QGraphicsView::MinimalViewportUpdate1QGraphicsView は、再描画を必要とする最小のビューポート領域を決定し、変更のない領域の再描画を避けることによって、描画に費やす時間を最小化します。これは のデフォルトモードです。このアプローチは一般的に最高のパフォーマンスを提供しますが、シーン上に目に見える小さな変更が多い場合、 、描画に費やす時間よりも最小のアプローチを見つけることに多くの時間を費やしてしまうかもしれません。QGraphicsView QGraphicsView
QGraphicsView::SmartViewportUpdate2QGraphicsView は、再描画を必要とする領域を分析することによって、最適な更新モードを見つけようとします。
QGraphicsView::BoundingRectViewportUpdate4ビューポート内のすべての変更の境界矩形が再描画されます。このモードには、QGraphicsView 、1つの領域だけを検索して変更を探すため、再描画が必要な領域を決定するのにかかる時間が最小限に抑えられるという利点があります。欠点は、変更されていない領域も再描画する必要があることです。
QGraphicsView::NoViewportUpdate3QGraphicsView シーンが変更されても、 は決してビューポートを更新しません。このモードは、 のすべての(潜在的に遅い)アイテムの可視性テストを無効にし、固定フレームレートを必要とするか、ビューポートが外部で更新されるシーンに適しています。QGraphicsView

viewportUpdateModeも参照してください

プロパティ ドキュメント

alignment : Qt::Alignment

このプロパティは、シーン全体が表示されている場合のビュー内のシーンのアライメントを保持する。

シーン全体がビューに表示されている場合(すなわち、スクロールバーが表示されていない場合)、ビューのアライメントは、シーンがビューのどこにレンダリングされるかを決定する。例えば、alignmentがデフォルトのQt::AlignCenter の場合、シーンはビューの中央に表示され、alignmentが(Qt::AlignLeft |Qt::AlignTop)の場合、シーンはビューの左上隅に表示されます。

アクセス関数:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment alignment)

backgroundBrush : QBrush

このプロパティは、シーンの背景ブラシを保持する。

このプロパティは、このビューのシーンの背景ブラシを設定します。これは、シーン自身の背景をオーバーライドするために使用され、drawBackground ()の動作を定義します。このビューにカスタムの背景描画を提供するには、代わりにdrawBackground() を再実装します。

デフォルトでは、このプロパティにはQt::NoBrush パターンのブラシが含まれます。

アクセス関数:

QBrush backgroundBrush() const
void setBackgroundBrush(const QBrush &brush)

QGraphicsScene::backgroundBrush およびforegroundBrushも参照してください

cacheMode : CacheMode

このプロパティは、ビューのどの部分がキャッシュされるかを保持する。

QGraphicsView は、プリレンダリングされたコンテンツを にキャッシュすることができます。このようなキャッシュの目的は、レンダリングに時間がかかる部分の総レンダリング時間を短縮することです。例えば、テクスチャ、グラデーション、およびアルファブレンドされた背景は、レンダリングに著しく時間がかかることがあります。 フラグは、ビューの背景のキャッシュを有効にします。例えばQPixmap CacheBackground

QGraphicsView view;
view.setBackgroundBrush(QImage(":/images/backgroundtile.png"));
view.setCacheMode(QGraphicsView::CacheBackground);

キャッシュは、ビューが変換されるたびに無効になります。しかし、スクロール時には、部分的な無効化のみが必要となります。

デフォルトでは、何もキャッシュされません。

アクセス関数:

QGraphicsView::CacheMode cacheMode() const
void setCacheMode(QGraphicsView::CacheMode mode)

resetCachedContent() およびQPixmapCacheも参照

dragMode : DragMode

このプロパティは、マウスの左ボタンが押されている間、シーン上でマウスをドラッグする際の動作を保持します。

このプロパティは、ユーザーがシーンの背景をクリックし、マウスをドラッグしたときに起こるべきことを定義します(例えば、ポインティングハンドカーソルを使用してビューポートコンテンツをスクロールしたり、ラバーバンドで複数のアイテムを選択したりします)。デフォルト値のNoDrag は何もしません。

この動作は、どのアイテムでも処理されないマウスクリックにのみ影響します。カスタムの動作を定義するには、QGraphicsView のサブクラスを作成し、mouseMoveEvent() を再実装します。

アクセス関数:

QGraphicsView::DragMode dragMode() const
void setDragMode(QGraphicsView::DragMode mode)

foregroundBrush : QBrush

このプロパティは、シーンの前景ブラシを保持する。

このプロパティは、このビューのシーンの前景ブラシを設定します。これは、シーン自身の前景をオーバーライドするために使用され、drawForeground ()の動作を定義します。このビューにカスタムの前景描画を提供するには、代わりにdrawForeground() を再実装します。

デフォルトでは、このプロパティにはQt::NoBrush パターンのブラシが含まれます。

アクセス関数:

QBrush foregroundBrush() const
void setForegroundBrush(const QBrush &brush)

QGraphicsScene::foregroundBrush およびbackgroundBrushも参照してください

interactive : bool

このプロパティは、ビューがシーンインタラクションを許可するかどうかを保持する。

有効な場合、このビューはシーンインタラクションを許可するように設定される。そうでない場合、このビューはインタラクションを許可せず、マウスまたはキーイベントは無視される(すなわち、読み取り専用ビューとして動作する)。

デフォルトでは、このプロパティはtrue です。

アクセス関数です:

bool isInteractive() const
void setInteractive(bool allowed)

optimizationFlags : OptimizationFlags

フラグを使用して、QGraphicsView のパフォーマンスを調整できます。

QGraphicsView は、クリッピング、余分な境界矩形の調整、およびその他の特定の補助を使用して、一般的なケースのグラフィックスシーンのレンダリング品質とパフォーマンスを向上させます。ただし、ターゲットプラットフォーム、シーン、および使用中のビューポートによっては、これらの操作の一部がパフォーマンスを低下させる可能性があります。

その影響はフラグによって異なります。詳細はOptimizationFlags のドキュメントを参照してください。

デフォルトでは、最適化フラグは有効になっていません。

関数にアクセスします:

QGraphicsView::OptimizationFlags optimizationFlags() const
void setOptimizationFlags(QGraphicsView::OptimizationFlags flags)

setOptimizationFlag()も参照

renderHints : QPainter::RenderHints

このプロパティは、ビューのデフォルトのレンダーヒントを保持します。

これらのヒントは、各表示アイテムが描画される前にQPainter を初期化するために使用されます。QPainter は、アンチエイリアスやスムーズなピクセルマップ変換などのレンダリング機能を切り替えるためにレンダーヒントを使用します。

QPainter::TextAntialiasing はデフォルトで有効です。

QGraphicsScene scene;
scene.addRect(QRectF(-10, -10, 20, 20));

QGraphicsView view(&scene);
view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
view.show();

アクセス関数:

QPainter::RenderHints renderHints() const
void setRenderHints(QPainter::RenderHints hints)

resizeAnchor : ViewportAnchor

ビューのサイズが変更されたときに、ビューがシーンをどのように配置するか。

QGraphicsView は、ビューポートウィジェットのサイズが変更されたときに、ビューポート内のシーンをどのように配置するかを決定するために、このプロパティを使用します。デフォルトの動作、 は、リサイズ中にシーンの位置を変更しないままです。ビューの左上隅は、リサイズ中に固定されているように見えます。NoAnchor

このプロパティの効果は、シーンの一部だけが表示されている場合(つまり、スクロールバーがある場合)に顕著であることに注意してください。そうでない場合、シーン全体がビューに収まる場合、QGraphicsScene 、ビューのアライメントを使用してシーンをビューに配置します。

アクセス関数:

QGraphicsView::ViewportAnchor resizeAnchor() const
void setResizeAnchor(QGraphicsView::ViewportAnchor anchor)

alignmentおよびtransformationAnchorも参照のこと

rubberBandSelectionMode : Qt::ItemSelectionMode

このプロパティは、ラバーバンド選択矩形でアイテムを選択する際の動作を保持する。

このプロパティは、RubberBandDrag ドラッグモードを使用するときにアイテムがどのように選択されるかを定義する。

デフォルト値はQt::IntersectsItemShape で、ラバーバンドと交差するか、ラバーバンドに含まれるすべてのアイテムが選択される。

アクセス関数:

Qt::ItemSelectionMode rubberBandSelectionMode() const
void setRubberBandSelectionMode(Qt::ItemSelectionMode mode)

dragModeitems()、rubberBandRect()も参照してください

sceneRect : QRectF

このプロパティは、このビューによって視覚化されるシーンの領域を保持する。

シーンの矩形はシーンの範囲を定義し、ビューの場合、これはスクロールバーを使用してナビゲートできるシーンの領域を意味する。

未設定の場合、またはNULLQRectF が設定されている場合、このプロパティはQGraphicsScene::sceneRect と同じ値を持ち、QGraphicsScene::sceneRect と共に変化する。それ以外の場合、ビューのシーン矩形はシーンに影響されない。

シーンは事実上無制限のサイズをサポートするが、スクロールバーの範囲は決して整数(INT_MIN、INT_MAX)の範囲を超えないことに注意。シーンがスクロールバーの値よりも大きい場合、代わりにtranslate ()を使用してシーンをナビゲートすることができます。

デフォルトでは、このプロパティは原点に幅と高さがゼロの矩形を含みます。

アクセス関数:

QRectF sceneRect() const
void setSceneRect(const QRectF &rect)
void setSceneRect(qreal x, qreal y, qreal w, qreal h)

QGraphicsScene::sceneRectも参照してください

transformationAnchor : ViewportAnchor

このプロパティは、変換中にビューがシーンをどのように配置するかを決定します。

QGraphicsView は、変換行列が変更され、ビューの座標系が変換されたときに、ビューポート内のシーンをどのように配置するかを決定するために、このプロパティを使用します。デフォルトの動作である は、ビューの中心にあるシーンポイントが、トランスフォーム中に変化しないことを保証します(例えば、回転するとき、シーンはビューの中心を中心に回転するように見えます)。AnchorViewCenter

このプロパティの効果は、シーンの一部だけが表示されているとき(つまり、スクロール・バーがあるとき)に顕著であることに注意してください。それ以外の場合、シーン全体がビューに収まる場合、QGraphicsScene 、ビューのアライメントを使用してシーンをビューに配置します。

アクセス関数:

QGraphicsView::ViewportAnchor transformationAnchor() const
void setTransformationAnchor(QGraphicsView::ViewportAnchor anchor)

alignmentおよびresizeAnchorも参照のこと

viewportUpdateMode : ViewportUpdateMode

ビューポートがそのコンテンツをどのように更新するか。

QGraphicsView は、再露光または変更されたシーンの領域を更新する方法を決定するために、このプロパティを使用します。通常、このプロパティを変更する必要はありませんが、変更することでレンダリングのパフォーマンスが向上する場合もあります。詳細については、 のドキュメントを参照してください。ViewportUpdateMode

デフォルト値はMinimalViewportUpdate で、QGraphicsView は、コンテンツが変更されたときに、ビューポートのできるだけ小さな領域を更新します。

アクセス関数:

QGraphicsView::ViewportUpdateMode viewportUpdateMode() const
void setViewportUpdateMode(QGraphicsView::ViewportUpdateMode mode)

ViewportUpdateMode およびcacheModeも参照

メンバ関数のドキュメント

QGraphicsView::QGraphicsView(QWidget *parent = nullptr)

QGraphicsView を構築します。parentQWidget のコンストラクタに渡されます。

QGraphicsView::QGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr)

QGraphicsView を構築し、ビジュアライズされたシーンをscene に設定します。parentQWidget のコンストラクタに渡されます。

[virtual noexcept] QGraphicsView::~QGraphicsView()

QGraphicsView オブジェクトを破棄します。

void QGraphicsView::centerOn(const QPointF &pos)

シーン座標pos がビューの中央に来るように、ビューポートの内容をスクロールします。

pos は浮動小数点座標であり、スクロールバーは整数座標で動作するため、センタリングは近似値に過ぎません。

注意: アイテムが境界線に近かったり、境界線の外側にある場合、ビューに表示されますが、中央に配置されません。

ensureVisible()も参照してください

void QGraphicsView::centerOn(const QGraphicsItem *item)

これはオーバーロードされた関数です。

item がビューの中央に来るように、ビューポートの内容をスクロールします。

ensureVisible()も参照

void QGraphicsView::centerOn(qreal x, qreal y)

これはオーバーロードされた関数である。

この関数は便宜上提供されている。これは、centerOn(QPointF(x,y)) を呼び出すのと等価である。

[override virtual protected] void QGraphicsView::contextMenuEvent(QContextMenuEvent *event)

再実装:QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e).

[override virtual protected] void QGraphicsView::dragEnterEvent(QDragEnterEvent *event)

再実装:QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)。

[override virtual protected] void QGraphicsView::dragLeaveEvent(QDragLeaveEvent *event)

再実装:QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)。

[override virtual protected] void QGraphicsView::dragMoveEvent(QDragMoveEvent *event)

再実装:QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)。

[virtual protected] void QGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)

アイテムや前景が描画される前に、painter を使用してシーンの背景を描画します。このビューのカスタム背景を提供するために、この関数を再実装します。

背景の色、テクスチャ、またはグラデーションを定義したい場合は、代わりにsetBackgroundBrush() を呼び出すことができます。

すべての描画はシーン座標で行われます。rect は露出した矩形です。

デフォルトの実装では、ビューのbackgroundBrush を使用してrect を塗りつぶします。そのようなブラシが定義されていない場合(デフォルト)、代わりにシーンの drawBackground() 関数が呼び出されます。

drawForeground() およびQGraphicsScene::drawBackground()も参照してください

[virtual protected] void QGraphicsView::drawForeground(QPainter *painter, const QRectF &rect)

背景とすべてのアイテムが描画された後、painter を使用してシーンの前景を描画します。このビューのカスタム前景を提供するために、この関数を再実装してください。

前景の色、テクスチャ、グラデーションを定義するだけであれば、代わりにsetForegroundBrush() を呼び出すことができます。

すべての描画はシーン座標で行われます。rect は露出した矩形です。

デフォルトの実装では、ビューのforegroundBrush を使用してrect を塗りつぶします。そのようなブラシが定義されていない場合(デフォルト)、シーンの drawForeground() 関数が代わりに呼び出されます。

drawBackground() およびQGraphicsScene::drawForeground()も参照してください

[override virtual protected] void QGraphicsView::dropEvent(QDropEvent *event)

再実装:QAbstractScrollArea::dropEvent(QDropEvent *event)。

void QGraphicsView::ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50)

xmarginymargin によってピクセル単位で指定されたマージンを持つシーン矩形rect が見えるように、ビューポートのコンテンツをスクロールします。 指定された矩形に到達できない場合、コンテンツは最も近い有効な位置にスクロールされます。両方のマージンのデフォルト値は 50 ピクセルです。

centerOn()も参照してください

void QGraphicsView::ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50)

これはオーバーロードされた関数である。

アイテムitem の中心が見えるようにビューポートのコンテンツをスクロールします。xmarginymargin によってピクセル単位で指定されたマージンがあります。 指定されたポイントに到達できない場合、コンテンツは最も近い有効な位置にスクロールされます。両方のマージンのデフォルト値は 50 ピクセルである。

centerOn()も参照のこと

void QGraphicsView::ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)

これはオーバーロードされた関数である。

この関数は便宜上提供されています。ensureVisible(QRectF(x,y,w,h),xmargin,ymargin) を呼び出すのと同じです。

[override virtual protected] bool QGraphicsView::event(QEvent *event)

再実装:QAbstractScrollArea::event(QEvent *event)。

void QGraphicsView::fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

ビュー行列をスケーリングし、シーン矩形rect がビューポート内に収まるようにスクロールバーをスクロールします。rect はシーン矩形内になければなりません。そうでない場合、fitInView() は矩形全体が見えることを保証できません。

こ の関数は、 ビ ュ ーの回転 ・ 平行移動 ・ シ アーを保持 し ます。ビ ュ ーはaspectRatioMode に従っ て拡大縮小 さ れます。rect は、 ぴ ったり収ま ら ない と き は、 ビ ュ ーの中央に配置 さ れます。

resizeEvent() の再実装の内部から fitInView() を呼び出すのが一般的で、 ビューのサイズが変更されたときに、 シーン全体またはシーンの一部が、 ビューポートの新しいサイズに合わせて自動的に拡大縮小されるようにします。ただし、resizeEvent() の内部から fitInView() を呼び出すと、新しい変換がスクロールバーの自動状態をトグルする場合、不要なリサイズ再帰につながる可能性があることに注意してください。こ れを防ぐ には、 ス ク ロ ールバー方針を常時オンか常時オフに切 り 替え る こ と がで き ます (horizontalScrollBarPolicy() とverticalScrollBarPolicy() を参照)。

rect が空の場合、またはビューポートが小さすぎる場合、この関数は何もしません。

setTransform()、ensureVisible()、centerOn()も参照

void QGraphicsView::fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

これはオーバーロードされた関数である。

aspectRatioMode に従ってビューを拡大縮小し、item がビューの内側にぴったり収まるようにします。

ensureVisible() およびcenterOn()も参照

void QGraphicsView::fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

こ れはオーバー ロー ド さ れた関数です。

こ の便宜関数は、 fitInView(QRectF(x,y,w,h),aspectRatioMode) を呼び出すのと等価です。

ensureVisible() およびcenterOn()も参照

[override virtual protected] void QGraphicsView::focusInEvent(QFocusEvent *event)

再実装:QWidget::focusInEvent(QFocusEvent *event)。

[override virtual protected] bool QGraphicsView::focusNextPrevChild(bool next)

再インプリメント:QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QGraphicsView::focusOutEvent(QFocusEvent *event)

再実装:QWidget::focusOutEvent(QFocusEvent *event)。

[override virtual protected] void QGraphicsView::inputMethodEvent(QInputMethodEvent *event)

再実装:QWidget::inputMethodEvent(QInputMethodEvent *event).

[override virtual] QVariant QGraphicsView::inputMethodQuery(Qt::InputMethodQuery query) const

再実装:QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

[slot] void QGraphicsView::invalidateScene(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)

rect 内のlayers の再描画を無効にしてスケジュールする。rect はシーン座標にある。rect 内のlayers のキャッシュされたコンテンツは、無条件に無効化され、再描画されます。

シーンの背景や前景の変更をQGraphicsView に通知するために、この関数を呼び出すことができます。これは、QGraphicsView が背景キャッシュを有効にしているときに変更を通知するために、タイルベースの背景を持つシーンに一般的に使用されます。

現在、QGraphicsView はバックグラウンドキャッシングのみをサポートしていることに注意してください(QGraphicsView::CacheBackground を参照)。この関数は、QGraphicsScene::BackgroundLayer 以外のレイヤーが渡された場合、update() を呼び出すのと同じです。

QGraphicsScene::invalidate() およびupdate()も参照

bool QGraphicsView::isTransformed() const

ビューが変換されている(すなわち、非同一変換が割り当てられている、またはスクロールバーが調整されている)場合はtrue を返します。

setTransform()、horizontalScrollBar()、verticalScrollBar()も参照

QGraphicsItem *QGraphicsView::itemAt(const QPoint &pos) const

ビューポート座標の位置pos にあるアイテムを返す。この位置に複数のアイテムがある場合、この関数は一番上のアイテムを返します。

voidCustomView::mousePressEvent(QMouseEvent*event) {if(QGraphicsItem*アイテム =itemAt(event->pos())){        qDebug() << "You clicked on item" << item;
    }else{        qDebug("You didn't click on an item.");
    }

items() およびSortingも参照のこと

QGraphicsItem *QGraphicsView::itemAt(int x, int y) const

これはオーバーロードされた関数である。

この関数は便宜上提供されています。itemAt(QPoint(x,y)) を呼び出すのと同じです。

QList<QGraphicsItem *> QGraphicsView::items() const

関連するシーン内のすべてのアイテムのリストを、積み重ねの降順(すなわち、返されるリストの最初のアイテムが最上位のアイテムである)で返す。

QGraphicsScene::items() およびSortingも参照してください

QList<QGraphicsItem *> QGraphicsView::items(const QPoint &pos) const

ビューのpos の位置にあるすべてのアイテムのリストを返す。アイテムは積み重ねの降順でリストされます(つまり、リストの最初のアイテムが最上位のアイテムで、最後のアイテムが最下位のアイテムです)。pos はビューポート座標です。

この関数は、QGraphicsView のサブクラス内のマウスイベントハンドラ内から呼び出されるのが最も一般的です。pos は、QMouseEvent::pos() と同様に、変換されていないビューポート座標です。

voidCustomView::mousePressEvent(QMouseEvent*イベント){
    qDebug() << "There are" << items(event->pos()).size()
            << "位置のアイテム"<<mapToScene(event->pos()); }

QGraphicsScene::items() およびSortingも参照のこと

QList<QGraphicsItem *> QGraphicsView::items(int x, int y) const

この関数は便宜上提供されている。items(QPoint(x,y)) を呼び出すのと同じことである。

QList<QGraphicsItem *> QGraphicsView::items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

この便利な関数は、items(QRectF(x,y,w,h),mode) を呼び出すのと同じである。

QList<QGraphicsItem *> QGraphicsView::items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

これはオーバーロードされた関数である。

mode に応じて、path に含まれるか、または と交差するすべてのアイテムのリストを返します。path はビューポート座標です。

mode のデフォルト値はQt::IntersectsItemShape です。path と交差するか、 に含まれるすべてのアイテムが返されます。

itemAt()、items()、mapToScene()、Sortingも参照

QList<QGraphicsItem *> QGraphicsView::items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

これはオーバーロードされた関数である。

mode に応じて、polygon に含まれるか、または と交差するすべてのアイテムのリストを返します。polygon はビューポート座標です。

mode のデフォルト値はQt::IntersectsItemShape です。正確な形状がpolygon と交差するか、 に含まれるすべてのアイテムが返されます。

アイテムは、積み重ね順の降順でソートされます (つまり、返されるリストの最初のアイテムが一番上になります)。

itemAt()、items()、mapToScene()、Sortingも参照のこと

QList<QGraphicsItem *> QGraphicsView::items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

これはオーバーロードされた関数である。

mode に応じて、rect に含まれるか、または と交差するすべてのアイテムのリストを返します。rect はビューポート座標です。

mode のデフォルト値はQt::IntersectsItemShape です。正確な形状がrect と交差するか、 に含まれるすべてのアイテムが返されます。

アイテムは、積み重ね順の降順でソートされます (つまり、返されるリストの最初のアイテムが一番上になります)。

itemAt()、items()、mapToScene()、Sortingも参照のこと

[override virtual protected] void QGraphicsView::keyPressEvent(QKeyEvent *event)

再実装:QAbstractScrollArea::keyPressEvent(QKeyEvent *e).

[override virtual protected] void QGraphicsView::keyReleaseEvent(QKeyEvent *event)

再実装:QWidget::keyReleaseEvent(QKeyEvent *event)。

QPainterPath QGraphicsView::mapFromScene(const QPainterPath &path) const

ビューポート座標ペインタパスへのシーン座標ペインタパスpath を返します。

mapToScene()も参照してください

QPoint QGraphicsView::mapFromScene(const QPointF &point) const

シーン座標point をビューポート座標に戻します。

mapToScene()も参照してください

QPolygon QGraphicsView::mapFromScene(const QPolygonF &polygon) const

ビューポート座標ポリゴンへのシーン座標ポリゴンpolygon を返す。

mapToScene()も参照してください

QPolygon QGraphicsView::mapFromScene(const QRectF &rect) const

ビューポート座標ポリゴンへのシーン矩形rect を返します。

mapToScene()も参照してください

QPoint QGraphicsView::mapFromScene(qreal x, qreal y) const

この関数は便宜上提供されている。これは mapFromScene(QPointF(x,y)) を呼び出すのと同じです。

QPolygon QGraphicsView::mapFromScene(qreal x, qreal y, qreal w, qreal h) const

この関数は便宜上提供されている。mapFromScene(QRectF(x,y,w,h)) を呼び出すのと同じです。

QPainterPath QGraphicsView::mapToScene(const QPainterPath &path) const

シーン座標ペインタパスにマップされたビューポートペインタパスpath を返します。

mapFromScene()も参照してください

QPointF QGraphicsView::mapToScene(const QPoint &point) const

シーン座標にマッピングされたビューポート座標point を返します。

注意:点そのものではなく、point のピクセルがカバーする矩形全体をマップすると便利です。これを行うには、 mapToScene(QRect(point,QSize(2, 2))) を呼び出します。

mapFromScene()も参照してください

QPolygonF QGraphicsView::mapToScene(const QPolygon &polygon) const

シーン座標ポリゴンにマップされたビューポートポリゴンpolygon を返す。

mapFromScene()も参照してください

QPolygonF QGraphicsView::mapToScene(const QRect &rect) const

シーン座標ポリゴンにマップされたビューポート矩形rect を返します。

mapFromScene()も参照してください

QPointF QGraphicsView::mapToScene(int x, int y) const

この関数は便宜上提供されている。これは、mapToScene(QPoint(x,y)) を呼び出すのと等価である。

QPolygonF QGraphicsView::mapToScene(int x, int y, int w, int h) const

この関数は便宜上提供されている。mapToScene(QRect(x,y,w,h)) を呼び出すのと同じことである。

[override virtual protected] void QGraphicsView::mouseDoubleClickEvent(QMouseEvent *event)

再実装:QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).

[override virtual protected] void QGraphicsView::mouseMoveEvent(QMouseEvent *event)

再実装:QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).

[override virtual protected] void QGraphicsView::mousePressEvent(QMouseEvent *event)

再実装:QAbstractScrollArea::mousePressEvent(QMouseEvent *e).

[override virtual protected] void QGraphicsView::mouseReleaseEvent(QMouseEvent *event)

再実装:QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).

[override virtual protected] void QGraphicsView::paintEvent(QPaintEvent *event)

再実装:QAbstractScrollArea::paintEvent(QPaintEvent *event)。

void QGraphicsView::render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)

ビュー座標であるsource rect を、painter を使って、シーンからペイントデバイス座標であるtarget にレンダリングします。この関数は、QImage のようなペイントデバイスにビューの内容をキャプチャしたり(スクリーンショットを撮るなど)、QPrinterに印刷したりするのに便利です。例えば

QGraphicsScene scene;
scene.addItem(...
...

QGraphicsView view(&scene);
view.show();
...

QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
QPainter painter(&printer);

// print, fitting the viewport contents into a full page
view.render(&painter);

// print the upper half of the viewport into the lower.
// half of the page.
QRect viewport = view.viewport()->rect();
view.render(&painter,
            QRectF(0, printer.height() / 2,
                   printer.width(), printer.height() / 2),
            viewport.adjusted(0, 0, 0, -viewport.height() / 2));

source がヌル矩形の場合、この関数はviewport()->rect() を使用して描画対象を決定します。target が null rect の場合、painter のペ イ ン ト デバ イ ス の完全な寸法 (た と えば QPrinter の場合はページサ イ ズ) が用い ら れます。

元 rect の内容は、aspectRatioMode に従っ て変換 さ れ、 タ ーゲ ッ ト rect に収ま る よ う にな り ます。デフ ォル ト では縦横比が保たれ、sourcetarget に収ま る よ う 縮小 さ れます。

QGraphicsScene::render)も参照してください

void QGraphicsView::resetCachedContent()

キャッシュされたコンテンツをリセットする。この関数を呼び出すと、QGraphicsView'のキャッシュがクリアされる。現在のキャッシュ・モードがCacheNone の場合、この関数は何もしません。

この関数は、backgroundBrush またはQGraphicsScene::backgroundBrush プロパティが変更されたときに自動的に呼び出されます。この関数を呼び出す必要があるのは、QGraphicsScene::drawBackground() またはQGraphicsView::drawBackground() を再実装してカスタム背景を描画し、完全な再描画をトリガする必要がある場合だけです。

cacheMode()も参照

void QGraphicsView::resetTransform()

ビューの変換を同一行列にリセットします。

transform() およびsetTransform()も参照

[override virtual protected] void QGraphicsView::resizeEvent(QResizeEvent *event)

再実装:QAbstractScrollArea::resizeEvent(QResizeEvent *event)。

void QGraphicsView::rotate(qreal angle)

現在のビュー変換を時計回りにangle 度回転します。

setTransform(),transform(),scale(),shear(),translate()も参照

[signal] void QGraphicsView::rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)

このシグナルは、ラバーバンドrectが変更されたときに発せられる。ビューポートRectはrubberBandRect で指定されます。ドラッグ開始位置とドラッグ終了位置は、fromScenePointtoScenePoint でシーンポイントで指定します。

ラバーバンド選択が終了すると、このシグナルはnull値で発せられます。

rubberBandRect()も参照してください

QRect QGraphicsView::rubberBandRect() const

この関数は、ユーザーが現在ラバーバンドでアイテム選択を行っている場合、現在のラバーバンドの領域(ビューポート座標)を返します。ユーザーがラバーバンドを使用していない場合、この関数は(NULLの)QRectF()を返します。

このQRect の一部がビューポートの外側になることがあることに注意してください。例えば、負の値を含むことができます。

rubberBandSelectionModerubberBandChanged()も参照して ください。

void QGraphicsView::scale(qreal sx, qreal sy)

現在のビューの変換を (sx,sy) によってスケーリングします。

setTransform(),transform(),rotate(),shear(),translate()も参照

QGraphicsScene *QGraphicsView::scene() const

ビューで現在視覚化されているシーンへのポインタを返す。現在可視化されているシーンがない場合は、nullptr が返されます。

setScene()も参照

[override virtual protected] void QGraphicsView::scrollContentsBy(int dx, int dy)

再実装:QAbstractScrollArea::scrollContentsBy(int dx, int dy).

void QGraphicsView::setOptimizationFlag(QGraphicsView::OptimizationFlag flag, bool enabled = true)

enabled が真ならflag を有効にし、そうでなければflag を無効にする。

optimizationFlagsも参照

void QGraphicsView::setRenderHint(QPainter::RenderHint hint, bool enabled = true)

enabled がtrueの場合、レンダーヒントhint が有効になり、そうでない場合は無効になる。

renderHintsも参照のこと

void QGraphicsView::setScene(QGraphicsScene *scene)

scene scene が既に表示されている場合、この関数は何もしない。

シーンがビューに設定されると、QGraphicsScene::changed() シグナルは自動的にこのビューのupdateScene() スロットに接続され、ビューのスクロールバーはシーンのサイズに合わせて調整されます。

ビューはscene の所有権を持ちません。

scene()も参照してください

void QGraphicsView::setTransform(const QTransform &matrix, bool combine = false)

ビューの現在の変換行列をmatrix に設定します。

combine が true の場合、matrix が現在の行列と組み合わされます。そうでない場合、matrix が現在の行列に置き換わりますcombine はデフォルトでは false です。

変換行列はシーンをビュー座標に変換します。恒等行列によって提供されるデフォルトの変換を使用すると、ビューの1ピクセルは、シーンの1単位を表します(例えば、10x10の長方形のアイテムは、ビューの10x10のピクセルを使用して描画されます)。2x2のスケーリングマトリックスが適用された場合、シーンは1:2で描画されます(例えば、10x10の長方形のアイテムは、ビュー内で20x20ピクセルを使用して描画されます)。

QGraphicsScene scene;
scene.addText("GraphicsView rotated clockwise");

QGraphicsView view(&scene);
view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
view.show();

変換されたビューを使用したアイテムとのインタラクションを簡単にするために、QGraphicsView は、シーンとビューの座標を変換できる mapTo... と mapFrom.. 関数を提供しています。たとえば、mapToScene ()を呼び出すと、ビュー座標を浮動小数点シーン座標にマップすることができ、mapFromScene ()を呼び出すと、浮動小数点シーン座標からビュー座標にマップすることができます。

transform()、resetTransform()、rotate()、scale()、shear()、translate()も参照してください

[override virtual protected slot] void QGraphicsView::setupViewport(QWidget *widget)

再実装:QAbstractScrollArea::setupViewport(QWidget *viewport)。

このスロットは、setViewport() が呼び出された後、QAbstractScrollArea によって呼び出されます。新しいビューポートwidget が使用される前に初期化するために、QGraphicsView のサブクラスでこの関数を再実装します。

setViewport()も参照

void QGraphicsView::shear(qreal sh, qreal sv)

現在のビュー変換を (sh,sv) で切断します。

setTransform(),transform(),rotate(),scale(),translate()も参照

[override virtual protected] void QGraphicsView::showEvent(QShowEvent *event)

再実装:QWidget::showEvent(QShowEvent *event)。

[override virtual] QSize QGraphicsView::sizeHint() const

再実装:QAbstractScrollArea::sizeHint() const.

QTransform QGraphicsView::transform() const

ビューの現在の変換行列を返します。現在の変換行列が設定されていない場合は、同一行列が返されます。

setTransform(),rotate(),scale(),shear(),translate()も参照してください

void QGraphicsView::translate(qreal dx, qreal dy)

現在のビューの変換を (dx,dy) によって変換します。

setTransform(),transform(),rotate(),shear()も参照

[slot] void QGraphicsView::updateScene(const QList<QRectF> &rects)

シーン矩形の更新をスケジュールするrects

QGraphicsScene::changed()も参照してください

[slot] void QGraphicsView::updateSceneRect(const QRectF &rect)

QGraphicsView にシーンのシーン矩形が変更されたことを通知する。rect は新しいシーン矩形である。ビューが既に明示的に設定されたシーン矩形を持っている場合、この関数は何もしません。

sceneRect およびQGraphicsScene::sceneRectChanged()も参照してください

[override virtual protected] bool QGraphicsView::viewportEvent(QEvent *event)

再実装:QAbstractScrollArea::viewportEvent(QEvent *event)。

QTransform QGraphicsView::viewportTransform() const

シーン座標をビューポート座標にマップする行列を返します。

mapToScene() およびmapFromScene()も参照して ください。

[override virtual protected] void QGraphicsView::wheelEvent(QWheelEvent *event)

再インプリメント:QAbstractScrollArea::wheelEvent(QWheelEvent *e).

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.