QGraphicsScene Class
QGraphicsSceneクラスは、多数の2Dグラフィカル・アイテムを管理するためのサーフェスを提供します。詳細...
ヘッダー | #include <QGraphicsScene> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QObject |
パブリックな型
enum | ItemIndexMethod { BspTreeIndex, NoIndex } |
enum | SceneLayer { ItemLayer, BackgroundLayer, ForegroundLayer, AllLayers } |
flags | SceneLayers |
プロパティ
|
|
パブリック機能
QGraphicsScene(QObject *parent = nullptr) | |
QGraphicsScene(const QRectF &sceneRect, QObject *parent = nullptr) | |
QGraphicsScene(qreal x, qreal y, qreal width, qreal height, QObject *parent = nullptr) | |
virtual | ~QGraphicsScene() |
QGraphicsItem * | activePanel() const |
QGraphicsWidget * | activeWindow() const |
QGraphicsEllipseItem * | addEllipse(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush()) |
QGraphicsEllipseItem * | addEllipse(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush()) |
void | addItem(QGraphicsItem *item) |
QGraphicsLineItem * | addLine(const QLineF &line, const QPen &pen = QPen()) |
QGraphicsLineItem * | addLine(qreal x1, qreal y1, qreal x2, qreal y2, const QPen &pen = QPen()) |
QGraphicsPathItem * | addPath(const QPainterPath &path, const QPen &pen = QPen(), const QBrush &brush = QBrush()) |
QGraphicsPixmapItem * | addPixmap(const QPixmap &pixmap) |
QGraphicsPolygonItem * | addPolygon(const QPolygonF &polygon, const QPen &pen = QPen(), const QBrush &brush = QBrush()) |
QGraphicsRectItem * | addRect(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush()) |
QGraphicsRectItem * | addRect(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush()) |
QGraphicsSimpleTextItem * | addSimpleText(const QString &text, const QFont &font = QFont()) |
QGraphicsTextItem * | addText(const QString &text, const QFont &font = QFont()) |
QGraphicsProxyWidget * | addWidget(QWidget *widget, Qt::WindowFlags wFlags = Qt::WindowFlags()) |
QBrush | backgroundBrush() const |
int | bspTreeDepth() const |
void | clearFocus() |
QList<QGraphicsItem *> | collidingItems(const QGraphicsItem *item, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
QGraphicsItemGroup * | createItemGroup(const QList<QGraphicsItem *> &items) |
void | destroyItemGroup(QGraphicsItemGroup *group) |
QGraphicsItem * | focusItem() const |
bool | focusOnTouch() const |
QFont | font() const |
QBrush | foregroundBrush() const |
bool | hasFocus() const |
qreal | height() const |
virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const |
void | invalidate(qreal x, qreal y, qreal w, qreal h, QGraphicsScene::SceneLayers layers = AllLayers) |
bool | isActive() const |
QGraphicsItem * | itemAt(const QPointF &position, const QTransform &deviceTransform) const |
QGraphicsItem * | itemAt(qreal x, qreal y, const QTransform &deviceTransform) const |
QGraphicsScene::ItemIndexMethod | itemIndexMethod() const |
QList<QGraphicsItem *> | items(Qt::SortOrder order = Qt::DescendingOrder) const |
QList<QGraphicsItem *> | items(const QPointF &pos, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const |
QList<QGraphicsItem *> | items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const |
QList<QGraphicsItem *> | items(const QPolygonF &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const |
QList<QGraphicsItem *> | items(const QRectF &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const |
QList<QGraphicsItem *> | items(qreal x, qreal y, qreal w, qreal h, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const |
QRectF | itemsBoundingRect() const |
qreal | minimumRenderSize() const |
QGraphicsItem * | mouseGrabberItem() const |
QPalette | palette() const |
void | removeItem(QGraphicsItem *item) |
void | render(QPainter *painter, const QRectF &target = QRectF(), const QRectF &source = QRectF(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio) |
QRectF | sceneRect() const |
QList<QGraphicsItem *> | selectedItems() const |
QPainterPath | selectionArea() const |
bool | sendEvent(QGraphicsItem *item, QEvent *event) |
void | setActivePanel(QGraphicsItem *item) |
void | setActiveWindow(QGraphicsWidget *widget) |
void | setBackgroundBrush(const QBrush &brush) |
void | setBspTreeDepth(int depth) |
void | setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason) |
void | setFocusItem(QGraphicsItem *item, Qt::FocusReason focusReason = Qt::OtherFocusReason) |
void | setFocusOnTouch(bool enabled) |
void | setFont(const QFont &font) |
void | setForegroundBrush(const QBrush &brush) |
void | setItemIndexMethod(QGraphicsScene::ItemIndexMethod method) |
void | setMinimumRenderSize(qreal minSize) |
void | setPalette(const QPalette &palette) |
void | setSceneRect(const QRectF &rect) |
void | setSceneRect(qreal x, qreal y, qreal w, qreal h) |
void | setSelectionArea(const QPainterPath &path, const QTransform &deviceTransform) |
void | setSelectionArea(const QPainterPath &path, Qt::ItemSelectionOperation selectionOperation = Qt::ReplaceSelection, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, const QTransform &deviceTransform = QTransform()) |
void | setStickyFocus(bool enabled) |
void | setStyle(QStyle *style) |
bool | stickyFocus() const |
QStyle * | style() const |
void | update(qreal x, qreal y, qreal w, qreal h) |
QList<QGraphicsView *> | views() const |
qreal | width() const |
パブリックスロット
void | advance() |
void | clear() |
void | clearSelection() |
void | invalidate(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = AllLayers) |
void | update(const QRectF &rect = QRectF()) |
シグナル
void | changed(const QList<QRectF> ®ion) |
void | focusItemChanged(QGraphicsItem *newFocusItem, QGraphicsItem *oldFocusItem, Qt::FocusReason reason) |
void | sceneRectChanged(const QRectF &rect) |
void | selectionChanged() |
保護された関数
virtual void | contextMenuEvent(QGraphicsSceneContextMenuEvent *contextMenuEvent) |
virtual void | dragEnterEvent(QGraphicsSceneDragDropEvent *event) |
virtual void | dragLeaveEvent(QGraphicsSceneDragDropEvent *event) |
virtual void | dragMoveEvent(QGraphicsSceneDragDropEvent *event) |
virtual void | drawBackground(QPainter *painter, const QRectF &rect) |
virtual void | drawForeground(QPainter *painter, const QRectF &rect) |
virtual void | dropEvent(QGraphicsSceneDragDropEvent *event) |
virtual void | focusInEvent(QFocusEvent *focusEvent) |
virtual void | focusOutEvent(QFocusEvent *focusEvent) |
virtual void | helpEvent(QGraphicsSceneHelpEvent *helpEvent) |
virtual void | inputMethodEvent(QInputMethodEvent *event) |
virtual void | keyPressEvent(QKeyEvent *keyEvent) |
virtual void | keyReleaseEvent(QKeyEvent *keyEvent) |
virtual void | mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent) |
virtual void | mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) |
virtual void | mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) |
virtual void | mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) |
virtual void | wheelEvent(QGraphicsSceneWheelEvent *wheelEvent) |
再実装されたプロテクト関数
virtual bool | event(QEvent *event) override |
virtual bool | eventFilter(QObject *watched, QEvent *event) override |
保護されたスロット
virtual bool | focusNextPrevChild(bool next) |
詳細説明
このクラスは QGraphicsItems のコンテナとして機能します。このクラスは、QGraphicsView と共に、線、矩形、テキスト、あるいはカスタムアイテムなどのグラフィカルアイテムを 2D サーフェス上で視覚化するために使用されます。QGraphicsScene は、Graphics View Framework の一部です。
QGraphicsScene は、アイテムの位置を効率的に決定したり、シーン上の任意の領域内に表示されるアイテムを決定したりする機能も提供します。QGraphicsView ウィジェットを使用すると、シーン全体を視覚化することも、シーンの一部だけをズームして表示することもできます。
例
QGraphicsScene scene; scene.addText("Hello, world!"); QGraphicsView view(&scene); view.show();
QGraphicsSceneは、それ自身の視覚的な外観を持たないことに注意してください。シーンを視覚化するには、QGraphicsView ウィジェットを作成する必要があります。
シーンにアイテムを追加するには、まずQGraphicsSceneオブジェクトを作成します。addItem() を呼び出して既存のQGraphicsItem オブジェクトを追加するか、addEllipse(),addLine(),addPath(),addPixmap(),addPolygon(),addRect(),addText() のいずれかの便利な関数を呼び出します。これらの関数で追加されたアイテムの寸法は、アイテムの座標系からの相対寸法であり、アイテムの位置はシーン内の(0, 0)に初期化されます。
その後、QGraphicsView を使用してシーンを視覚化できます。QGraphicsSceneは、シーンが変更されると(例えば、アイテムが移動したり、変形したりすると)、changed ()シグナルを発行します。アイテムを削除するには、removeItem() を呼び出します。
QGraphicsSceneは、アイテムの位置を効率的に管理するためにインデックスアルゴリズムを使用します。デフォルトでは、BSP (Binary Space Partitioning) ツリーが使用されます。このアルゴリズムは、ほとんどのアイテムが静止したまま (つまり、動き回らない) の大規模なシーンに適しています。このインデックスを無効にするには、setItemIndexMethod() を呼び出します。利用可能なインデックス アルゴリズムの詳細については、itemIndexMethod プロパティを参照してください。
シーンの外接矩形は、setSceneRect() を呼び出すことで設定されます。アイテムはシーン上の任意の位置に配置でき、シーンのサイズはデフォルトで無制限です。シーン矩形は、シーンのアイテムインデックスを維持する内部的な帳簿管理のためだけに使用されます。シーン矩形が設定されていない場合、QGraphicsScene は、itemsBoundingRect() によって返される、すべてのアイテムの境界領域をシーン矩形として使用します。ただし、itemsBoundingRect() は、シーン上のすべてのアイテムの位置情報を収集して動作するため、比較的時間のかかる関数です。このため、大きなシーンを操作するときは、常にシーン矩形を設定する必要があります。
QGraphicsSceneの最大の強みは、アイテムの位置を効率的に決定できることです。シーン上に何百万ものアイテムがあっても、items() 関数は数ミリ秒以内にアイテムの位置を決定できます。items() にはいくつかのオーバーロードがあり、特定の位置にあるアイテムを見つけるもの、多角形や矩形の内部や交差するアイテムを見つけるものなどがあります。返される項目のリストは、積み重ね順でソートされ、一番上の項目がリストの最初の項目となる。便宜上、指定した位置の一番上の項目を返すitemAt() 関数もあります。
QGraphicsScene は、シーンの選択情報を保持します。アイテムを選択するには、setSelectionArea() を呼び出し、現在の選択をクリアするには、clearSelection() を呼び出します。すべての選択項目のリストを取得するには、selectedItems() を呼び出します。
イベント処理と伝播
QGraphicsViewイベントをシーンに送信するには、QEvent を継承したイベントを作成し、QCoreApplication::sendEvent() などを使用してイベントを送信します。event() は、個々のアイテムへのイベントのディスパッチに責任を負います。いくつかの一般的なイベントは、便利なイベント・ハンドラによって処理されます。例えば、キー押下イベントはkeyPressEvent() で処理され、マウス押下イベントはmousePressEvent() で処理されます。
キー・イベントはフォーカス・アイテムに送られる。フォーカス項目を設定するには、フォーカスを受け付ける項目を渡してsetFocusItem() を呼び出すか、項目自体がQGraphicsItem::setFocus() を呼び出します。現在のフォーカス・アイテムを取得するには、focusItem ()を呼び出します。ウィジェットとの互換性のために、シーンは独自のフォーカス情報も保持します。デフォルトでは、シーンはフォーカスを持たず、すべてのキーイベントは破棄されます。setFocus() が呼び出されるか、シーン上のアイテムがフォーカスを得ると、シーンは自動的にフォーカスを得ます。シーンにフォーカスがある場合、hasFocus ()はtrueを返し、キーイベントは、もしあれば、フォーカスアイテムに転送される。アイテムがフォーカスを持っている間にシーンがフォーカスを失った場合(つまり、誰かがclearFocus() を呼び出した場合)、シーンはそのアイテムのフォーカス情報を保持し、シーンがフォーカスを取り戻すと、最後にフォーカスされたアイテムがフォーカスを取り戻すようにします。
マウスオーバー効果のために、QGraphicsScene はホバーイベントをディスパッチします。アイテムがホバーイベントを受け入れる場合 (QGraphicsItem::acceptHoverEvents() を参照)、マウスがその領域に入ると、GraphicsSceneHoverEnter イベントを受け取ります。マウスがアイテムの領域内で動き続けると、QGraphicsScene はGraphicsSceneHoverMove イベントを送ります。マウスがアイテムの領域を離れると、アイテムはGraphicsSceneHoverLeave イベントを受信します。
すべてのマウスイベントは、現在のマウスグラバーアイテムに送られます。アイテムは、マウスイベントを受け入れ(QGraphicsItem::acceptedMouseButtons() を参照)、マウスを押すと、シーンのマウスグラバーになります。それは、他のマウスボタンが押されていないときにマウスリリースを受け取るまで、マウスグラバーのままです。mouseGrabberItem() を呼び出すことで、現在どのアイテムがマウスをつかんでいるかを判断することができます。
QGraphicsItem およびQGraphicsViewも参照のこと 。
メンバ型ドキュメント
enum QGraphicsScene::ItemIndexMethod
この列挙型は、シーン上のアイテムに関する位置情報を管理するために、QGraphicsScene が提供するインデックス作成アルゴリズムを記述する。
定数 | 値 | 説明 |
---|---|---|
QGraphicsScene::BspTreeIndex | 0 | バイナリ空間分割ツリーが適用されます。すべてのQGraphicsScene のアイテム位置アルゴリズムは、バイナリサーチを利用することで、対数に近い複雑さのオーダーを持つ。アイテムの追加、移動、削除は対数的である。このアプローチは、静的なシーン(つまり、ほとんどのアイテムが動かないシーン)に最適である。 |
QGraphicsScene::NoIndex | -1 | インデックスは適用されない。アイテムの位置は、シーン上のすべてのアイテムが検索されるため、線形複雑度である。しかし、アイテムの追加、移動、削除は一定時間で行われる。このアプローチは、多くのアイテムが連続的に追加、移動、削除されるダイナミックなシーンに最適です。 |
setItemIndexMethod() およびbspTreeDepthも参照してください 。
enum QGraphicsScene::SceneLayer
flags QGraphicsScene::SceneLayers
この enum は、QGraphicsScene のレンダリングレイヤーを記述します。QGraphicsScene がシーンコンテンツを描画するとき、これらのレイヤーのそれぞれを別々に、順番にレンダリングします。
各レイヤーはフラグを表し、invalidate() やQGraphicsView::invalidateScene() のような関数を呼び出すときに OR'd することができます。
定数 | 値 | 説明 |
---|---|---|
QGraphicsScene::ItemLayer | 0x1 | アイテムレイヤー。QGraphicsScene は、仮想関数 drawItems() を呼び出すことで、このレイヤーにあるすべてのアイテムを描画します。アイテムレイヤーは背景レイヤーの後に描画され、前景レイヤーの前に描画されます。 |
QGraphicsScene::BackgroundLayer | 0x2 | 背景レイヤーQGraphicsScene 仮想関数drawBackground() を呼び出すことで、このレイヤーにシーンの背景を描画します。背景レイヤーは、すべてのレイヤーの中で最初に描画されます。 |
QGraphicsScene::ForegroundLayer | 0x4 | 前景レイヤーQGraphicsScene は、仮想関数drawForeground() を呼び出すことで、このレイヤーにシーンの前景を描画します。前景レイヤーは、すべてのレイヤーの中で最後に描画されます。 |
QGraphicsScene::AllLayers | 0xffff | この値は、3 つのレイヤーの組み合わせを表します。 |
SceneLayers 型は、QFlags<SceneLayer> の typedef です。これは、SceneLayer 値の OR の組み合わせを保存します。
invalidate() とQGraphicsView::invalidateScene()も参照してください 。
プロパティ ドキュメント
backgroundBrush : QBrush
このプロパティは、シーンの背景ブラシを保持します。
このプロパティを設定すると、シーンの背景が異なる色、グラデーション、またはテクスチャに変更されます。デフォルトの背景ブラシはQt::NoBrush です。背景は、アイテムの前(後ろ)に描かれます。
例
QGraphicsScene scene; QGraphicsView view(&scene); view.show(); // a blue background scene.setBackgroundBrush(Qt::blue); // a gradient background QRadialGradient gradient(0, 0, 10); gradient.setSpread(QGradient::RepeatSpread); scene.setBackgroundBrush(gradient);
QGraphicsScene::render() は、drawBackground() を呼び出して、シーンの背景を描画します。背景の描画方法をより詳細に制御するには、QGraphicsScene のサブクラスでdrawBackground() を再実装します。
アクセス関数:
QBrush | backgroundBrush() const |
void | setBackgroundBrush(const QBrush &brush) |
bspTreeDepth : int
このプロパティは、QGraphicsScene'のBSPインデックスツリーの深さを保持する。
このプロパティは、NoIndex が使用されているときには何の効果もない。
この値はQGraphicsScene のBSPツリーの深さを決定する。深さはQGraphicsScene のパフォーマンスとメモリ使用量に直接影響し、後者はツリーの深さに応じて指数関数的に増大する。最適なツリーの深さがあれば、QGraphicsScene は、何千、何百万ものアイテムがあるシーンでも、アイテムの局所性を即座に判断することができます。これにより、レンダリングのパフォーマンスも大幅に向上します。
デフォルトでは、この値は 0 です。この場合、Qt はシーン内のアイテムのサイズ、場所、数に基づいて、妥当なデフォルトの深さを推測します。しかし、これらのパラメータが頻繁に変更される場合、QGraphicsScene 内部で深度を調整するため、速度低下が発生する可能性があります。このプロパティを設定してツリーの深さを固定することで、スローダウンの可能性を回避できます。
ツリーの深さとシーンの矩形のサイズは、シーンの分割の粒度を決定します。各シーンセグメントのサイズは、以下のアルゴリズムによって決定される:
QSizeF segmentSize = sceneRect().size() / pow(2, depth - 1);
BSPツリーは、各セグメントが0から10のアイテムを含むときに最適なサイズになる。
アクセス関数:
int | bspTreeDepth() const |
void | setBspTreeDepth(int depth) |
itemIndexMethodも参照してください 。
focusOnTouch : bool
このプロパティは、タッチ開始イベントを受け取ったときにアイテムがフォーカスを得るかどうかを保持する。
通常の動作は、アイテムがクリックされた時のみフォーカスを移す。多くの場合、タッチパッドのタップはオペレーティング・システムによってマウス・クリックと同等に解釈され、それに応答して合成されたクリック・イベントが生成されます。しかし、少なくともmacOSでは、この動作を設定することができます。
デフォルトでは、QGraphicsScene 、トラックパッドなどをタッチしたときにもフォーカスが移動します。オペレーティング・システムが、トラックパッドをタップしても合成マウス・クリックを生成しないように設定されている場合、これは驚くべきことです。オペレーティングシステムがトラックパッドのタップ時に合成マウスクリックを生成する場合、タッチジェスチャの開始時のフォーカスの移動は不要です。
focusOnTouch をオフにすると、QGraphicsScene は macOS で期待されるように動作します。
デフォルト値はtrue
で、5.12 より前のバージョンの Qt と同じ動作になります。タッチイベントがフォーカスの変更をトリガーしないようにするには、false
に設定します。
関数にアクセスします:
bool | focusOnTouch() const |
void | setFocusOnTouch(bool enabled) |
font : QFont
このプロパティは、シーンのデフォルトフォントを保持します。
このプロパティはシーンのフォントを提供する。シーンのフォントのデフォルトは、QApplication::font からすべてのエントリを解決する。
シーンのフォントが、setFont() を通して直接、またはアプリケーションのフォントが変更されたときに間接的に変更された場合、QGraphicsScene は、最初にそれ自体にFontChange イベントを送信し、次にシーン内のすべてのトップレベルのウィジェット・アイテムにFontChange イベントを送信します。これらのアイテムは、自身のフォントをシーンに解決することによって応答し、次にその子に通知し、子もまたその子に通知し、といった具合に、すべてのウィジェット・アイテムがフォントを更新するまで続きます。
シーン・フォントを変更すると、(直接またはQApplication::setFont ()を通して間接的に)自動的にシーン全体の再描画がスケジュールされる。
アクセス関数:
QFont | font() const |
void | setFont(const QFont &font) |
QWidget::font 、QApplication::setFont()、palette 、style()も参照のこと 。
foregroundBrush : QBrush
このプロパティは、シーンの前景ブラシを保持します。
このプロパティを変更すると、シーンの前景を別の色、グラデーション、またはテクスチャに設定できます。
前景はアイテムの後(上)に描かれます。デフォルトの前景ブラシはQt::NoBrush (つまり、前景は描画されない)。
例
QGraphicsScene scene; QGraphicsView view(&scene); view.show(); // a white semi-transparent foreground scene.setForegroundBrush(QColor(255, 255, 255, 127)); // a grid foreground scene.setForegroundBrush(QBrush(Qt::lightGray, Qt::CrossPattern));
QGraphicsScene::render() はdrawForeground() を呼び出し、シーンの前景を描画します。前景の描画方法をより詳細に制御するには、QGraphicsScene サブクラスでdrawForeground() 関数を再実装します。
関数にアクセスします:
QBrush | foregroundBrush() const |
void | setForegroundBrush(const QBrush &brush) |
itemIndexMethod : ItemIndexMethod
このプロパティは、アイテムのインデックス作成方法を保持する。
QGraphicsScene items() や () のようなアイテム発見関数をスピードアップするために、シーンにインデクシングアルゴリズムを適用します。インデックス作成は、静的なシーン(つまり、アイテムが動き回らないシーン)で最も効率的です。ダイナミックなシーンや、多くのアニメーションアイテムがあるシーンでは、インデックスのブックキーピングが、高速なルックアップ速度を上回ることがあります。itemAt
一般的なケースでは、デフォルトのインデックスメソッドBspTreeIndex 。あなたのシーンが多くのアニメーションを使用し、遅さを経験している場合、setItemIndexMethod(NoIndex)
を呼び出してインデックスを無効にすることができます。
関数にアクセスしてください:
QGraphicsScene::ItemIndexMethod | itemIndexMethod() const |
void | setItemIndexMethod(QGraphicsScene::ItemIndexMethod method) |
bspTreeDepthも参照して ください。
minimumRenderSize : qreal
このプロパティは、アイテムが描画されるために必要なビュー変換された最小サイズを保持します。
シーンがレンダリングされるとき、ターゲットビューに変換された幅または高さが minimumRenderSize() より小さいアイテムは、レンダリングされません。アイテムがレンダリングされず、子アイテムをクリップする場合、それらもレンダリングされません。この値を設定することで、ズームアウトしたビューにレンダリングされたオブジェクトが多数あるシーンのレンダリングを高速化することができます。
デフォルト値は 0 です。未設定、または 0 または負の値に設定すると、すべてのアイテムが常にレンダリングされます。
例えば、シーンが複数のビューによってレンダリングされ、そのうちの1つが常にすべてのアイテムを表示するオーバービューとして機能する場合、このプロパティを設定すると特に便利です。多くのアイテムがあるシーンでは、そのようなビューは、すべてのアイテムを表示できるように、高いスケーリング係数を使用します。スケーリングのため、小さなアイテムは、最終的なレンダリングシーンに取るに足らない貢献しかしません。このようなアイテムの描画を回避し、シーンのレンダリングに必要な時間を短縮するには、setMinimumRenderSize() に負でない値を指定して呼び出します。
注意: 小さすぎるために描画されなかったアイテムは、items() やitemAt() などのメソッドによって返され、衝突検出や相互作用に参加します。インタラクティブなアイテムが大きく描画されるのを避けるために、minimumRenderSize() を 1 以下の値に設定することをお勧めします。
関数にアクセスしてください:
qreal | minimumRenderSize() const |
void | setMinimumRenderSize(qreal minSize) |
QStyleOptionGraphicsItem::levelOfDetailFromTransform()も参照してください 。
palette : QPalette
このプロパティは、シーンのデフォルトパレットを保持します。
このプロパティは、シーンのパレットを提供する。シーンパレットのデフォルトは、QApplication::palette 。
シーンのパレットが、setPalette() を通して直接、またはアプリケーションのパレットが変更されたときに間接的に変更された場合、QGraphicsScene は、最初にそれ自身にPaletteChange イベントを送信し、次にシーン内のすべてのトップレベルのウィジェット・アイテムにPaletteChange イベントを送信します。これらのアイテムは、自身のパレットをシーンに解決することによって応答し、次に、子アイテムに通知し、子アイテムは再び子アイテムに通知するなど、すべてのウィジェット・アイテムがパレットを更新するまで続きます。
シーンパレットを変更すると、(直接またはQApplication::setPalette ()を通して間接的に)自動的にシーン全体の再描画がスケジュールされる。
アクセス関数:
QPalette | palette() const |
void | setPalette(const QPalette &palette) |
QWidget::palette 、QApplication::setPalette()、font 、style()も参照のこと 。
sceneRect : QRectF
このプロパティはシーンの矩形を保持する。
シーン矩形は、シーンの範囲を定義する。これは主に、QGraphicsView 、ビューのデフォルトのスクロール可能領域を決定するために使用され、QGraphicsScene 、アイテムのインデックスを管理するために使用されます。
未設定の場合、またはNULLQRectF に設定された場合、sceneRect() は、シーンが作成されて以来、シーン上のすべてのアイテムの最大の外接矩形を返します(すなわち、アイテムがシーンに追加または移動されたときに成長しますが、決して縮小しない矩形)。
アクセス関数:
QRectF | sceneRect() const |
void | setSceneRect(const QRectF &rect) |
void | setSceneRect(qreal x, qreal y, qreal w, qreal h) |
width()、height()、QGraphicsView::sceneRectも参照してください 。
stickyFocus : bool
このプロパティは、シーン背景をクリックするとフォーカスがクリアされるかどうかを保持します。
stickyFocusがtrueに設定されたQGraphicsScene 、ユーザがシーンの背景やフォーカスを受け付けないアイテムをクリックしても、フォーカスは変更されません。そうでない場合、フォーカスはクリアされます。
デフォルトでは、このプロパティはfalse
です。
フォーカスは、マウスの押下に応じて変化します。ユーザーがクリックした場所に基づいてこのプロパティを切り替えるには、QGraphicsScene のサブクラスでmousePressEvent() を再実装します。
アクセス関数:
bool | stickyFocus() const |
void | setStickyFocus(bool enabled) |
clearFocus() およびsetFocusItem()も参照して ください。
メンバ関数ドキュメント
QGraphicsScene::QGraphicsScene(QObject *parent = nullptr)
QGraphicsScene オブジェクトを構築します。parent パラメータはQObject のコンストラクタに渡されます。
QGraphicsScene::QGraphicsScene(const QRectF &sceneRect, QObject *parent = nullptr)
シーン矩形にsceneRect を使用して、QGraphicsScene オブジェクトを構築します。parent パラメータはQObject のコンストラクタに渡されます。
sceneRectも参照してください 。
QGraphicsScene::QGraphicsScene(qreal x, qreal y, qreal width, qreal height, QObject *parent = nullptr)
(x,y) で指定された矩形と、与えられたwidth とheight をシーンの矩形に使用して、QGraphicsScene オブジェクトを構築します。parent パラメータはQObject のコンストラクタに渡されます。
sceneRectも参照してください 。
[virtual noexcept]
QGraphicsScene::~QGraphicsScene()
シーンオブジェクトを破棄する前に、シーンオブジェクトから全てのアイテムを削除し、削除する。シーンオブジェクトは、アプリケーションのグローバルシーンリストから削除され、関連する全てのビューから削除されます。
QGraphicsItem *QGraphicsScene::activePanel() const
現在アクティブなパネル、または現在アクティブなパネルがない場合はnullptr
を返す。
QGraphicsScene::setActivePanel()も参照 。
QGraphicsWidget *QGraphicsScene::activeWindow() const
現在アクティブなウィンドウを返し、現在アクティブなウィンドウがない場合はnullptr
を返す。
QGraphicsScene::setActiveWindow()も参照 。
QGraphicsEllipseItem *QGraphicsScene::addEllipse(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush())
楕円アイテムを作成してシーンに追加し、アイテムのポインタを返す。楕円のジオメトリはrect で定義され、そのペンとブラシはpen とbrush で初期化されます。
アイテムのジオメトリはアイテム座標で提供され、その位置は (0, 0) に初期化されることに注意してください。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addLine()、addPath()、addPixmap()、addRect()、addText()、addItem()、addWidget()も参照のこと 。
QGraphicsEllipseItem *QGraphicsScene::addEllipse(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush())
この便宜関数は、addEllipse(QRectF(x,y,w,h),pen,brush) を呼び出すのと等価である。
void QGraphicsScene::addItem(QGraphicsItem *item)
item とそのすべての子を、このシーンに追加または移動する。このシーンはitem のオーナーシップを取る。
アイテムが可視の場合(すなわち、QGraphicsItem::isVisible ()が真を返す)、QGraphicsScene は、制御がイベントループに戻ると、changed ()を発する。
アイテムがすでに別のシーンにある場合は、まずその古いシーンから削除され、それからトップレベルとしてこのシーンに追加される。
QGraphicsScene がシーンに追加されている間、 にItemSceneChange通知を送る。アイテムが現在シーンに属していない場合、1つの通知のみが送られる。アイテムが既にシーンに属している場合(つまり、このシーンに移動された場合)、 は、アイテムがその前のシーンから削除される間、追加通知を送る。item QGraphicsScene
アイテムがパネルで、シーンがアクティブで、シーンにアクティブパネルがない場合、アイテムはアクティブになる。
removeItem()、addEllipse()、addLine()、addPath()、addPixmap()、addRect()、addText()、addWidget()、Sortingも参照 。
QGraphicsLineItem *QGraphicsScene::addLine(const QLineF &line, const QPen &pen = QPen())
線アイテムを作成してシーンに追加し、アイテムポインタを返す。線のジオメトリはline で定義され、そのペンはpen で初期化されます。
アイテムのジオメトリはアイテム座標で提供され、その位置は (0, 0) に初期化されることに注意してください。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addPath()、addPixmap()、addRect()、addText()、addItem()、addWidget()も参照のこと 。
QGraphicsLineItem *QGraphicsScene::addLine(qreal x1, qreal y1, qreal x2, qreal y2, const QPen &pen = QPen())
この便利な関数は、addLine(QLineF(x1,y1,x2,y2),pen) を呼び出すのと同じである。
QGraphicsPathItem *QGraphicsScene::addPath(const QPainterPath &path, const QPen &pen = QPen(), const QBrush &brush = QBrush())
パスアイテムを作成してシーンに追加し、アイテムポインタを返す。パスのジオメトリはpath で定義され、そのペンとブラシはpen とbrush で初期化されます。
アイテムのジオメトリはアイテム座標で提供され、その位置は (0, 0) に初期化されることに注意してください。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addLine()、addPixmap()、addRect()、addText()、addItem()、addWidget()も参照のこと 。
QGraphicsPixmapItem *QGraphicsScene::addPixmap(const QPixmap &pixmap)
pixmap アイテムを作成してシーンに追加し、アイテムのポインタを返す。pixmap はpixmap で定義される。
アイテムのジオメトリはアイテム座標で提供され、その位置は (0, 0) に初期化されることに注意してください。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addLine()、addPath()、addRect()、addText()、addItem()、addWidget()も参照のこと 。
QGraphicsPolygonItem *QGraphicsScene::addPolygon(const QPolygonF &polygon, const QPen &pen = QPen(), const QBrush &brush = QBrush())
ポリゴンアイテムを作成してシーンに追加し、アイテムポインタを返す。ポリゴンはpolygon で定義され、そのペンとブラシはpen とbrush で初期化されます。
アイテムのジオメトリはアイテム座標で提供され、その位置は (0, 0) に初期化されることに注意してください。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addLine()、addPath()、addRect()、addText()、addItem()、addWidget()も参照のこと 。
QGraphicsRectItem *QGraphicsScene::addRect(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush())
矩形アイテムを作成してシーンに追加し、アイテムポインタを返す。矩形のジオメトリはrect で定義され、そのペンとブラシはpen とbrush で初期化されます。
アイテムのジオメトリはアイテム座標で提供され、その位置は (0, 0) に初期化されることに注意してください。た と えば、QRect(50, 50, 100, 100) が追加 さ れた場合、 その左上隅は、 アイテムの座標系の原点に対 し て相対的に (50, 50) の位置にな り ます。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addLine()、addPixmap()、addPixmap()、addText()、addItem()、addWidget()も参照 。
QGraphicsRectItem *QGraphicsScene::addRect(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush())
この便宜関数は、addRect(QRectF(x,y,w,h),pen,brush) を呼び出すのと等価である。
QGraphicsSimpleTextItem *QGraphicsScene::addSimpleText(const QString &text, const QFont &font = QFont())
QGraphicsSimpleTextItem を作成してシーンに追加し、アイテムポインタを返す。テキスト文字列はtext に初期化され、そのフォントはfont に初期化される。
アイテムの位置は (0, 0) に初期化される。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addLine()、addPixmap()、addPixmap()、addRect()、addItem()、addWidget()も参照のこと 。
QGraphicsTextItem *QGraphicsScene::addText(const QString &text, const QFont &font = QFont())
テキストアイテムを作成してシーンに追加し、アイテムポインタを返す。テキスト文字列はtext に初期化され、そのフォントはfont に初期化される。
アイテムの位置は (0, 0) に初期化される。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() がtrue
を返す場合)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
addEllipse()、addLine()、addPixmap()、addPixmap()、addRect()、addItem()、addWidget()も参照 。
QGraphicsProxyWidget *QGraphicsScene::addWidget(QWidget *widget, Qt::WindowFlags wFlags = Qt::WindowFlags())
widget の新しいQGraphicsProxyWidget を作成し、シーンに追加し、プロキシへのポインタを返します。wFlags は、埋め込みプロキシウィジェットのデフォルトウィンドウフラグを設定します。
アイテムの位置は (0, 0) に初期化される。
アイテムが表示されている場合(すなわち、QGraphicsItem::isVisible() は、true
を返す)、QGraphicsScene は、制御がイベントループに戻ると、changed() を発行します。
Qt::WA_PaintOnScreen ウィジェット属性が設定されたウィジェットや、外部アプリケーションやコントローラをラップするウィジェットはサポートされていないことに注意してください。例として、QOpenGLWidget と QAxWidget があります。
addEllipse(),addLine(),addPixmap(),addPixmap(),addRect(),addText(),addSimpleText(),addItem()も参照してください 。
[slot]
void QGraphicsScene::advance()
このスロットは、シーン上のすべてのアイテムに対してQGraphicsItem::advance() を呼び出すことによって、シーンを1ステップ進めます。これは、2つのフェーズで行われます。最初のフェーズでは、すべてのアイテムにシーンが変化しようとしていることを通知し、2番目のフェーズでは、すべてのアイテムに移動できることを通知します。最初のフェーズでは、QGraphicsItem::advance() が引数として 0 を渡して呼び出され、2 番目のフェーズでは 1 が渡されます。
アニメーションのためにアニメーションフレームワークを使用することもできます。
QGraphicsItem::advance() およびQTimeLineも参照して ください。
[signal]
void QGraphicsScene::changed(const QList<QRectF> ®ion)
このシグナルは、制御がイベントループに達したとき、シーンの内容が変更されると、QGraphicsScene 。region パラメータには、変更された領域を示すシーン矩形のリストが含まれる。
QGraphicsView::updateScene()も参照 。
[slot]
void QGraphicsScene::clear()
シーンからすべてのアイテムを削除し、削除しますが、それ以外はシーンの状態を変更しません。
addItem()も参照してください 。
void QGraphicsScene::clearFocus()
シーンからフォーカスをクリアする。この関数が呼び出された時、フォーカスを持つアイテムがあれば、フォーカスを失い、シーンがフォーカスを取り戻すと、再びフォーカスを取り戻す。
フォーカスを持たないシーンは、キーイベントを無視する。
hasFocus(),setFocus(),setFocusItem()も参照してください 。
[slot]
void QGraphicsScene::clearSelection()
現在の選択範囲をクリアする。
setSelectionArea() およびselectedItems()も参照 。
QList<QGraphicsItem *> QGraphicsScene::collidingItems(const QGraphicsItem *item, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
item と衝突するすべてのアイテムのリストを返す。衝突の判定はQGraphicsItem::collidesWithItem() を呼び出すことで行われる。衝突の判定はmode で行われる。デフォルトでは、Shape がitem と交差しているか、item の Shape の中に含まれているすべてのアイテムが返される。
項目は、積み重ねの降順で返される (つまり、リストの最初の項目が上位の項目で、最後の項目が下位の項目である)。
items()、itemAt()、QGraphicsItem::collidesWithItem()、Sortingも参照のこと 。
[virtual protected]
void QGraphicsScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *contextMenuEvent)
このイベント・ハンドラは、イベントcontextMenuEvent に対して、コンテキスト・メニュー・イベントを受け取るためにサブクラスで再実装することができます。デフォルトの実装では、イベントの位置でコンテキスト・メニュー・イベントを受け付ける一番上の可視アイテムにイベントを転送します。この位置でコンテキストメニューイベントを受け付ける項目がない場合、イベントは無視されます。
注意: この関数でどの項目を可視項目とみなすかの定義についてはitems() を参照。
QGraphicsItem::contextMenuEvent()も参照のこと 。
QGraphicsItemGroup *QGraphicsScene::createItemGroup(const QList<QGraphicsItem *> &items)
items のすべての項目を新しいQGraphicsItemGroup にグループ化し、そのグループへのポインタを返します。グループは、items の共通の祖先を親として、位置 (0, 0) で作成されます。アイテムはすべてグループに再ペアレントされ、その位置と変換はグループにマップされます。items が空の場合、この関数は空のトップレベルQGraphicsItemGroup を返します。
QGraphicsScene にはグループアイテムの所有権があるので、削除する必要はありません。グループを解除するには、 () を呼び出します。destroyItemGroup
destroyItemGroup() およびQGraphicsItemGroup::addToGroup()も参照 。
void QGraphicsScene::destroyItemGroup(QGraphicsItemGroup *group)
group の全アイテムをgroup の親アイテムにリペアレントしてから、group をシーンから削除し、最後にそれを削除する。アイテムの位置と変形は、グループからグループの親にマップされます。
createItemGroup() およびQGraphicsItemGroup::removeFromGroup()も参照してください 。
[virtual protected]
void QGraphicsScene::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
このイベントハンドラは、イベントevent 、シーンのドラッグ入力イベントを受け取るために、サブクラスで再実装することができます。
デフォルトの実装では、イベントを受け取り、ドラッグ移動イベントを受け取るようにシーンを準備します。
QGraphicsItem::dragEnterEvent(),dragMoveEvent(),dragLeaveEvent(),dropEvent()も参照してください 。
[virtual protected]
void QGraphicsScene::dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
イベントevent に対するこのイベントハンドラは、シーンのドラッグ離脱イベントを受け取るために、サブクラスで再実装することができます。
QGraphicsItem::dragLeaveEvent(),dragEnterEvent(),dragMoveEvent(),dropEvent()も参照してください 。
[virtual protected]
void QGraphicsScene::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
このイベントハンドラは、イベントevent 、シーンのドラッグ移動イベントを受け取るために、サブクラスで再実装することができます。
注: この関数によって可視とみなされるアイテムの定義については、items() を参照してください。
QGraphicsItem::dragMoveEvent()、dragEnterEvent()、dragLeaveEvent()、dropEvent()も参照してください 。
[virtual protected]
void QGraphicsScene::drawBackground(QPainter *painter, const QRectF &rect)
アイテムや前景が描画される前に、painter を使用してシーンの背景を描画します。シーンのカスタム背景を提供するために、この関数を再実装してください。
すべての描画はシーン座標で行われます。rect パラメータは、露出した矩形です。
背景の色、テクスチャ、またはグラデーションを定義したい場合は、代わりにsetBackgroundBrush() を呼び出すことができます。
drawForeground() およびdrawItems()も参照して ください。
[virtual protected]
void QGraphicsScene::drawForeground(QPainter *painter, const QRectF &rect)
背景とすべてのアイテムが描画された後、painter を使用してシーンの前景を描画します。シーンのカスタム前景を提供するために、この関数を再実装してください。
すべての描画はシーン座標で行われます。rect パラメータは、露出された矩形である。
前景の色、テクスチャ、またはグラデーションを定義したい場合は、代わりにsetForegroundBrush() を呼び出すことができます。
drawBackground() およびdrawItems()も 参照してください。
[virtual protected]
void QGraphicsScene::dropEvent(QGraphicsSceneDragDropEvent *event)
イベントevent に対するこのイベントハンドラは、シーンのドロップイベントを受け取るために、サブクラスで再実装することができる。
QGraphicsItem::dropEvent(),dragEnterEvent(),dragMoveEvent(),dragLeaveEvent()も参照してください 。
[override virtual protected]
bool QGraphicsScene::event(QEvent *event)
再インプリメント:QObject::event(QEvent *e)。
イベントevent を処理し、それぞれのイベントハンドラにディスパッチします。
便利なイベントハンドラを呼び出すことに加えて、この関数は、マウスグラバーアイテムがない場合のために、マウス移動イベントをホバーイベントに変換する役割を果たします。ホバー・イベントはアイテムに直接配信され、そのための便利関数はありません。
QWidget とは異なり、QGraphicsScene には便利関数enterEvent() とleaveEvent() がありません。これらのイベントを取得するには、この関数を使用します。
event が認識され処理された場合はtrue
を返し、そうでない場合はfalse
を返す。
contextMenuEvent()、keyPressEvent()、keyReleaseEvent()、mousePressEvent()、mouseMoveEvent()、mouseReleaseEvent()、mouseDoubleClickEvent()、focusInEvent()、focusOutEvent()も参照のこと 。
[override virtual protected]
bool QGraphicsScene::eventFilter(QObject *watched, QEvent *event)
再インプリメント:QObject::eventFilter(QObject *watched, QEvent *event)。
QGraphicsScene QApplication のイベントにフィルタをかけて、パレットとフォントの変更を検出します。
[virtual protected]
void QGraphicsScene::focusInEvent(QFocusEvent *focusEvent)
このイベント・ハンドラは、イベントfocusEvent 用で、イベントでフォーカスを受け取るためにサブクラスで再実装することができます。
デフォルトの実装では、シーンにフォーカスが設定され、最後にフォーカスされたアイテムにフォーカスが設定されます。
QGraphicsItem::focusOutEvent()も参照してください 。
QGraphicsItem *QGraphicsScene::focusItem() const
シーンがアクティブな場合、この関数はシーンの現在のフォーカスアイテムを返し、現在フォーカスを持つアイテムがない場合はnullptr
。シーンが非アクティブの時、この関数は、シーンがアクティブになった時に入力フォーカスを得るアイテムを返す。
シーンがキーイベントを受信すると、フォーカスアイテムはキーボード入力を受け取る。
setFocusItem()、QGraphicsItem::hasFocus()、isActive()も参照してください 。
[signal]
void QGraphicsScene::focusItemChanged(QGraphicsItem *newFocusItem, QGraphicsItem *oldFocusItem, Qt::FocusReason reason)
このシグナルは、シーン内でフォーカスが変わるたびに(つまり、アイテムが入力フォーカスを得たり失ったりしたとき、またはあるアイテムから別のアイテムにフォーカスが移ったとき)、QGraphicsScene によって発せられる。他のアイテムがいつ入力フォーカスを得たかを追跡する必要がある場合は、このシグナルに接続することができます。特に、仮想キーボード、入力メソッド、カーソル・アイテムの実装に便利です。
oldFocusItem newFocusItem は入力フォーカスを得たアイテムへのポインターで、フォーカスが失われた場合は になります。 はフォーカスが変更された理由です(例えば、入力フィールドにフォーカスがある間にシーンが非アクティブになった場合、 は入力フィールドのアイテムを指し、 は になり、 は になります)。nullptr
reason oldFocusItem newFocusItem nullptr
reason Qt::ActiveWindowFocusReason
[virtual protected slot]
bool QGraphicsScene::focusNextPrevChild(bool next)
TabとShift+Tabに適切なように、キーボード・フォーカスを与える新しいウィジェットを見つけ、新しいウィジェットが見つかればtrue
、見つからなければfalseを返す。next が真の場合、この関数は前方を検索し、next が偽の場合、後方を検索します。
この関数をQGraphicsScene のサブクラスで再実装することで、シーン内でタブのフォーカスがどのように渡されるかを細かく制御することができます。デフォルトの実装は、QGraphicsWidget::setTabOrder() で定義されたタブ フォーカス チェーンに基づいています。
[virtual protected]
void QGraphicsScene::focusOutEvent(QFocusEvent *focusEvent)
このイベントハンドラは、イベントfocusEvent 用で、フォーカスアウトイベントを受け取るためにサブクラスで再実装することができます。
デフォルトの実装では、任意のフォーカス項目からフォーカスを外し、シーンからフォーカスを外します。
QGraphicsItem::focusInEvent()も参照してください 。
bool QGraphicsScene::hasFocus() const
シーンにフォーカスがあればtrue
を返し、なければfalse
を返す。シーンにフォーカスがある場合、QKeyEvent からのキーイベントを、フォーカスを持つアイテムに転送します。
setFocus() およびsetFocusItem()も参照してください 。
qreal QGraphicsScene::height() const
この便利な関数は、sceneRect().height()
を呼び出すのと同じである。
width()も参照のこと 。
[virtual protected]
void QGraphicsScene::helpEvent(QGraphicsSceneHelpEvent *helpEvent)
このイベント・ハンドラは、イベントhelpEvent 、ヘルプ・イベントを受け取るためにサブクラスで再実装することができる。イベントはQEvent::ToolTip 型であり、ツールチップが要求されたときに生成される。
デフォルトの実装では、マウスカーソルの位置で一番上に表示されるアイテム、すなわち、最も高いz値を持つアイテムのツールチップが表示されます。どの項目にもツールチップが設定されていない場合、この関数は何もしない。
注意: この関数で可視とみなされるアイテムの定義については、items() を参照のこと。
QGraphicsItem::toolTip() とQGraphicsSceneHelpEventも参照 。
[virtual protected]
void QGraphicsScene::inputMethodEvent(QInputMethodEvent *event)
このイベントハンドラは、イベントevent 、シーンの入力メソッドイベントを受け取るために、サブクラスで再実装することができます。
デフォルトの実装では、イベントはfocusItem() に転送されます。現在フォーカスを持つアイテムがない場合、または現在のフォーカスアイテムが入力メソッドを受け付けない場合、この関数は何もしません。
QGraphicsItem::inputMethodEvent()も参照してください 。
[virtual]
QVariant QGraphicsScene::inputMethodQuery(Qt::InputMethodQuery query) const
このメソッドは、入力メソッドがシーンのプロパティのセットをクエリするために使用され、周囲のテキストや再変換のサポートとして複雑な入力メソッド操作をサポートできるようにする。
query パラメータは、クエリされるプロパティを指定する。
QWidget::inputMethodQuery()も参照 。
[slot]
void QGraphicsScene::invalidate(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = AllLayers)
シーン上のrect のlayers の再描画を無効にし、スケジュールする。layers にキャッシュされたコンテンツは、無条件に無効化され、再描画される。
この関数のオーバーロードを使用して、シーンの背景または前景の変更をQGraphicsScene に通知することができます。この関数は、QGraphicsView がCacheBackground を有効にしたときに変更を通知するために、タイルベースの背景を持つシーンによく使用されます。
例
QRectF TileScene::rectForTile(int x, int y) const { // Return the rectangle for the tile at position (x, y). return QRectF(x * tileWidth, y * tileHeight, tileWidth, tileHeight); } void TileScene::setTile(int x, int y, const QPixmap &pixmap) { // Sets or replaces the tile at position (x, y) with pixmap. if (x >= 0 && x < numTilesH && y >= 0 && y < numTilesV) { tiles[y][x] = pixmap; invalidate(rectForTile(x, y), BackgroundLayer); } } void TileScene::drawBackground(QPainter *painter, const QRectF &exposed) { // Draws all tiles that intersect the exposed area. for (int y = 0; y < numTilesV; ++y) { for (int x = 0; x < numTilesH; ++x) { QRectF rect = rectForTile(x, y); if (exposed.intersects(rect)) painter->drawPixmap(rect.topLeft(), tiles[y][x]); } } }
現在、QGraphicsView は背景のキャッシュのみをサポートしていることに注意してください(QGraphicsView::CacheBackground を参照)。この関数は、BackgroundLayer 以外のレイヤーが渡された場合、update() を呼び出すのと同じです。
QGraphicsView::resetCachedContent()も参照 。
void QGraphicsScene::invalidate(qreal x, qreal y, qreal w, qreal h, QGraphicsScene::SceneLayers layers = AllLayers)
これはオーバーロードされた関数である。
この便利な関数は、invalidate(QRectF(x,y,w,h),layers) を呼び出すのと等価である;
bool QGraphicsScene::isActive() const
シーンがアクティブな場合(例えば、アクティブな少なくとも1つのQGraphicsView によって表示されている場合)、true
を返す。そうでない場合は、false
を返す。
QGraphicsItem::isActive() およびQWidget::isActiveWindow()も参照して ください。
QGraphicsItem *QGraphicsScene::itemAt(const QPointF &position, const QTransform &deviceTransform) const
指定されたposition 、またはこの位置にアイテムがない場合はnullptr
。
deviceTransform は、ビューに適用されるトランスフォームであり、シーンがトランスフォームを無視するアイテムを含む場合に提供される必要があります。
注:この関数で可視とみなされるアイテムの定義については、items ()を参照してください。
items()、collidingItems()、Sortingも参照してください 。
QGraphicsItem *QGraphicsScene::itemAt(qreal x, qreal y, const QTransform &deviceTransform) const
これはオーバーロードされた関数である。
(x,y) で指定された位置の一番上の可視アイテム、またはこの位置にアイテムがない場合はnullptr
を返します。
deviceTransform はビューに適用されるトランスフォームであり、シーンがトランスフォームを無視するアイテムを含む場合は提供する必要があります。
この便利な関数は、itemAt(QPointF(x, y), deviceTransform)
を呼び出すのと同じです。
注:この関数でどのアイテムが可視とみなされるかの定義については、items() を参照してください。
QList<QGraphicsItem *> QGraphicsScene::items(Qt::SortOrder order = Qt::DescendingOrder) const
シーン上のすべてのアイテムの順序付きリストを返す。order は積み重ね順序を決定する。
addItem()、removeItem()、Sortingも参照 。
QList<QGraphicsItem *> QGraphicsScene::items(const QPointF &pos, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const
order を用いてソートされたリストにおいて、mode に依存して、指定されたpos にあるすべての可視アイテムを返す。この場合、"visible" は、isVisible() がtrue
を返し、effectiveOpacity() が 0.0 より大きい値 (これは完全に透明である) を返し、親アイテムがそれをクリップしないアイテムを定義する。
mode のデフ ォ ル ト 値はQt::IntersectsItemShape です。pos と正確な形状が交差するすべてのアイテムが返されます。
deviceTransform はビューに適用されるトランスフォームで、シーンにトランスフォームを無視するアイテムが含まれている場合は提供する必要があります。
itemAt() およびSortingも参照してください 。
QList<QGraphicsItem *> QGraphicsScene::items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const
これはオーバーロードされた関数である。
order を用いてソートされたリストにおいて、mode に依存して、指定されたpath の内部またはそれと交差するすべての可視アイテムを返す。この場合、"visible" は、 isVisible() がtrue
を返し、 effectiveOpacity() が 0.0 より大きい値(完全に透明)を返し、親アイテムがそれをクリップしないアイテムを定義します。
mode のデフ ォル ト 値はQt::IntersectsItemShape です。path と交差する、 または に包含されるすべてのアイテムが返されます。
deviceTransform はビューに適用されるトランスフォームであり、シーンにトランスフォームを無視するアイテムが含まれている場合は提供する必要があります。
itemAt() およびSortingも参照してください 。
QList<QGraphicsItem *> QGraphicsScene::items(const QPolygonF &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const
これはオーバーロードされた関数である。
order を用いてソートされたリストにおいて、mode に依存して、指定されたpolygon の内部またはそれと交差するすべての可視アイテムを返す。この場合、"visible" は、 isVisible() がtrue
を返し、 effectiveOpacity() が 0.0 より大きい値(完全に透明)を返し、親アイテムがそれをクリップしないアイテムを定義します。
mode のデフ ォル ト 値はQt::IntersectsItemShape です。polygon と交差する、 または に包含されるすべてのアイテムが返されます。
deviceTransform はビューに適用されるトランスフォームであり、シーンにトランスフォームを無視するアイテムが含まれている場合は提供する必要があります。
itemAt() およびSortingも参照してください 。
QList<QGraphicsItem *> QGraphicsScene::items(const QRectF &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const
これはオーバーロードされた関数である。
order を用いてソートされたリストにおいて、mode に依存して、指定されたrect の内部またはそれと交差するすべての可視アイテムを返す。この場合、"visible" は、 isVisible() がtrue
を返し、 effectiveOpacity() が 0.0 より大きい値(完全に透明)を返し、親アイテムがそれをクリップしないアイテムを定義します。
mode のデフ ォル ト 値はQt::IntersectsItemShape です。rect と交差する、 または に包含されるすべてのアイテムが返されます。
deviceTransform はビューに適用されるトランスフォームであり、シーンにトランスフォームを無視するアイテムが含まれている場合は提供する必要があります。
itemAt() およびSortingも参照してください 。
QList<QGraphicsItem *> QGraphicsScene::items(qreal x, qreal y, qreal w, qreal h, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const
これはオーバーロードされた関数である。
mode x, , , で定義される矩形の内側にあるか、 あるいは矩形と交差しているすべての可視アイテムを、 を用いてソートしたリストで返します。この場合、"visible" は、isVisible() が を返し、effectiveOpacity() が 0.0 より大きい値(これは完全に透明である)を返し、親アイテムがそれをクリップしないアイテムを定義する。y w h order true
deviceTransform は、ビューに適用されるトランスフォームで、シーンにトランスフォームを無視するアイテムが含まれている場合に指定する必要があります。
QRectF QGraphicsScene::itemsBoundingRect() const
シーン上のすべてのアイテムの外接矩形を計算して返す。この関数は、すべてのアイテムを繰り返し処理することによって動作し、このため、大きなシーンでは遅くなることがあります。
sceneRect()も参照してください 。
[virtual protected]
void QGraphicsScene::keyPressEvent(QKeyEvent *keyEvent)
このイベント・ハンドラは、イベントkeyEvent 、キー・プレス・イベントを受け取るためにサブクラスで再実装することができます。デフォルトの実装では、イベントは現在のフォーカス項目に転送されます。
QGraphicsItem::keyPressEvent() およびfocusItem()も参照してください 。
[virtual protected]
void QGraphicsScene::keyReleaseEvent(QKeyEvent *keyEvent)
このイベント・ハンドラは、イベントkeyEvent 用で、キー・リリース・イベントを受け取るためにサブクラスで再実装することができます。デフォルトの実装では、イベントは現在のフォーカス項目に転送されます。
QGraphicsItem::keyReleaseEvent() およびfocusItem()も参照してください 。
[virtual protected]
void QGraphicsScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent)
このイベントハンドラは、イベントmouseEvent 、シーンのマウスダブルクリックイベントを受け取るために、サブクラスで再実装することができます。
誰かがシーンをダブルクリックすると、シーンは最初にマウスを押すイベントを受信し、次にリリースイベント(つまりクリック)を受信し、次にダブルクリックイベントを受信し、最後にリリースイベントを受信します。ダブルクリックイベントが、最初のプレスとリリースを受け取ったアイテムとは異なるアイテムに配信される場合は、プレスイベントとして配信されます。ただし、この場合、トリプルクリック・イベントはダブルクリック・イベントとして配信されません。
デフォルトの実装はmousePressEvent() と同様です。
注意: この関数で可視とみなされるアイテムの定義についてはitems() を参照してください。
QGraphicsItem::mousePressEvent()、QGraphicsItem::mouseMoveEvent()、QGraphicsItem::mouseReleaseEvent()、QGraphicsItem::setAcceptedMouseButtons()も参照 。
QGraphicsItem *QGraphicsScene::mouseGrabberItem() const
現在のマウスグラバーアイテムを返し、現在マウスをつかんでいるアイテムがない場合はnullptr
を返します。マウスグラバーアイテムは、シーンに送られるすべてのマウスイベントを受け取るアイテムです。
アイテムは、マウスを押すイベントを受信するとマウスグラバーになり、次のいずれかのイベントが発生するまでマウスグラバーであり続けます:
- 他のボタンが押されていない時に、アイテムがマウスリリースイベントを受信すると、マウスグラブを失います。
- アイテムが不可視になった場合(例:誰かが
item->setVisible(false)
を呼び出す)、または無効になった場合(例:誰かがitem->setEnabled(false)
を呼び出す)、マウスグラブを失う。 - アイテムがシーンから削除されると、マウスグラブを失います。
アイテムがマウスグラブを失うと、シーンは新しいアイテムがマウスをつかむまで(つまり、新しいアイテムがマウスプレスイベントを受け取るまで)、すべてのマウスイベントを無視します。
[virtual protected]
void QGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
このイベントハンドラは、イベントmouseEvent 、シーンのマウス移動イベントを受け取るために、サブクラスで再実装することができます。
デフォルトの実装は、マウスグラバーの状態に依存します。マウスグラバーアイテムがある場合、イベントはマウスグラバーに送られます。現在の位置にホバーイベントを受け付けるアイテムがあれば、イベントはホバーイベントに変換され、受け付けられます。
QGraphicsItem::mousePressEvent(),QGraphicsItem::mouseReleaseEvent(),QGraphicsItem::mouseDoubleClickEvent(),QGraphicsItem::setAcceptedMouseButtons()も参照 。
[virtual protected]
void QGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
このイベントハンドラは、イベントmouseEvent 、シーンのマウス押下イベントを受け取るために、サブクラスで再実装することができる。
デフォルトの実装は、シーンの状態に依存します。マウスグラバーアイテムがある場合、イベントはマウスグラバーに送られます。そうでない場合は、そのイベントからシーン位置でマウスイベントを受け付ける一番上の可視アイテムに転送され、そのアイテムが即座にマウスグラバーアイテムになる。
シーン上の指定された位置にアイテムがない場合、選択領域はリセットされ、フォーカスされたアイテムは入力フォーカスを失い、イベントは無視される。
注: この関数で可視とみなされるアイテムの定義については、items() を参照してください。
QGraphicsItem::mousePressEvent() およびQGraphicsItem::setAcceptedMouseButtons()も参照して ください。
[virtual protected]
void QGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
このイベントハンドラは、イベントmouseEvent 、シーンのマウスリリースイベントを受け取るために、サブクラスで再実装することができます。
デフォルトの実装は、マウスグラバーの状態に依存します。マウスグラバーがない場合、イベントは無視されます。そうでない場合、マウスグラバーアイテムがあれば、イベントはマウスグラバーに送られます。このマウスリリースがマウスの最後に押されたボタンを表す場合、マウスグラバーアイテムはマウスグラブを失います。
QGraphicsItem::mousePressEvent(),QGraphicsItem::mouseMoveEvent(),QGraphicsItem::mouseDoubleClickEvent(),QGraphicsItem::setAcceptedMouseButtons()も参照のこと 。
void QGraphicsScene::removeItem(QGraphicsItem *item)
アイテムitem とそのすべての子をシーンから削除する。item の所有権は呼び出し元に渡される(つまり、QGraphicsScene が破棄されてもitem は削除されない)。
addItem()も参照してください 。
void QGraphicsScene::render(QPainter *painter, const QRectF &target = QRectF(), const QRectF &source = QRectF(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)
painter を使って、シーンからsource rect をtarget にレンダリングします。この関数は、QImage のようなペイントデバイスにシーンの内容をキャプチャしたり(スクリーンショットを撮るなど)、QPrinterで印刷したりするのに便利です。例えば
QGraphicsScene scene; scene.addItem(... ... QPrinter printer(QPrinter::HighResolution); printer.setPaperSize(QPrinter::A4); QPainter painter(&printer); scene.render(&painter);
source が null rect の場合、この関数はsceneRect() を使用してレンダリングを決定します。target が null rect の場合、painter のペイントデバイスの寸法が使用されます。
ソース rect の内容は,aspectRatioMode に従って変換され,ターゲット rect に収まるようになります。デフォルトでは、縦横比は維持され、source はtarget に収まるように拡大縮小されます。
QGraphicsView::render()も参照してください 。
[signal]
void QGraphicsScene::sceneRectChanged(const QRectF &rect)
このシグナルは、シーン矩形が変更されるたびにQGraphicsScene から発せられる。rect パラメータは新しいシーン矩形である。
QGraphicsView::updateSceneRect()も参照してください 。
QList<QGraphicsItem *> QGraphicsScene::selectedItems() const
現在選択されているすべての項目のリストを返します。項目は順不同で返されます。
setSelectionArea()も参照 。
QPainterPath QGraphicsScene::selectionArea() const
以前にsetSelectionArea() で設定した選択領域、または選択領域が設定されていない場合は空のQPainterPath を返す。
setSelectionArea()も参照 。
[signal]
void QGraphicsScene::selectionChanged()
このシグナルは、選択項目が変わるたびにQGraphicsScene から発せられる。selectedItems ()を呼び出すと、選択されたアイテムの新しいリストを取得できます。
アイテムが選択または非選択されたとき、選択領域が設定、クリア、またはその他の方法で変更されたとき、あらかじめ選択されたアイテムがシーンに追加されたとき、または選択されたアイテムがシーンから削除されたときはいつでも、セレクションが変更されます。
QGraphicsScene は、グループ選択操作に対して1度だけこのシグナルを発する。例えば、選択領域を設定したり、 を選択または選択解除したり、複数の選択されたアイテムを含む親アイテムをシーンに追加またはシーンから削除した場合、selectionChanged() は、操作が完了した後に(各アイテムに対して1回ではなく)1回だけ発せられます。QGraphicsItemGroup
setSelectionArea()、selectedItems()、QGraphicsItem::setSelected()も参照してください 。
bool QGraphicsScene::sendEvent(QGraphicsItem *item, QEvent *event)
可能なイベントフィルターを通してアイテムitem にイベントevent を送る。
イベントは、アイテムが有効な場合にのみ送られる。
イベントがフィルタリングされた場合、またはアイテムが無効な場合はfalse
を返します。そうでない場合は、イベントハンドラから返された値を返します。
QGraphicsItem::sceneEvent() およびQGraphicsItem::sceneEventFilter()も参照 。
void QGraphicsScene::setActivePanel(QGraphicsItem *item)
itemこのシーンのアイテムでなければならない。itemこの場合、QGraphicsScene は、現在アクティブなパネルを非アクティブにする。
シーンが現在非アクティブの場合、item は、シーンがアクティブになるまで非アクティブのままです(または、item がnullptr
の場合、アイテムはアクティブになりません)。
activePanel ()、isActive ()、QGraphicsItem::isActive ()も参照のこと 。
void QGraphicsScene::setActiveWindow(QGraphicsWidget *widget)
このシーンのウィジェットでなければならないwidget をアクティブにする。widgetこの場合、QGraphicsScene は、現在アクティブなウィンドウを非アクティブにします。
activeWindow() およびQGraphicsWidget::isActiveWindow()も参照してください 。
void QGraphicsScene::setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason)
シーンにQFocusEvent を送り、理由としてfocusReason を渡すことによって、シーンにフォーカスを設定する。あるアイテムがフォーカスを持っている間にフォーカスを失った後、シーンがフォーカスを取り戻した場合、最後にフォーカスされたアイテムがfocusReason を理由としてフォーカスを受け取ります。
シーンがすでにフォーカスを持っている場合、この関数は何もしない。
hasFocus()、clearFocus()、setFocusItem()も参照して ください。
void QGraphicsScene::setFocusItem(QGraphicsItem *item, Qt::FocusReason focusReason = Qt::OtherFocusReason)
focusReasonフォーカスを持つ可能性のある以前のアイテムからフォーカスを取り除いた後、シーンのフォーカスアイテムをitem に設定する。
item がnullptr
である場合、またはフォーカスを受け入れない(すなわち、QGraphicsItem::ItemIsFocusable フラグが有効になっていない)か、表示されていないか、有効になっていない場合、この関数は以前のフォーカス項目からフォーカスを削除するだけである。
item がnullptr
でなく、シーンが現在フォーカスを持っていない場合(すなわち、hasFocus() がfalse
を返す場合)、この関数は自動的にsetFocus() を呼び出します。
focusItem()、hasFocus()、setFocus()も参照してください 。
void QGraphicsScene::setSelectionArea(const QPainterPath &path, const QTransform &deviceTransform)
選択範囲をpath に設定する。この領域内の項目はすべて即座に選択され、領域外の項目はすべて非選択となる。選択されたアイテムのリストは、selectedItems() を呼び出すことで取得できます。
deviceTransform は、ビューに適用されるトランスフォームで、シーンにトランスフォームを無視するアイテムが含まれている場合は、提供する必要があります。
アイテムを選択するには、選択可能(QGraphicsItem::ItemIsSelectable) としてマークする必要があります。
clearSelection() およびselectionArea()も参照してください 。
void QGraphicsScene::setSelectionArea(const QPainterPath &path, Qt::ItemSelectionOperation selectionOperation = Qt::ReplaceSelection, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, const QTransform &deviceTransform = QTransform())
これはオーバーロードされた関数である。
アイテムが選択領域に含まれるかどうかを判断するためにmode を使用して、選択領域をpath に設定します。
deviceTransform はビューに適用されるトランスフォームで、シーンにトランスフォームを無視するアイテムが含まれている場合は提供する必要があります。
selectionOperation は、現在選択されているアイテムをどうするかを決定します。
clearSelection() およびselectionArea()も参照してください 。
void QGraphicsScene::setStyle(QStyle *style)
シーンのスタイルをstyle に設定または置換し、スタイルをこのシーンに再ペアレントします。以前に割り当てられていたスタイルは削除される。シーンのスタイルのデフォルトはQApplication::style() で、シーン内のすべてのQGraphicsWidget アイテムのデフォルトとして機能します。
この関数を直接呼び出すか、QApplication::setStyle() を間接的に呼び出すことによってスタイルを変更すると、スタイルが明示的に割り当てられていないシーン内のすべてのウィジェットのスタイルが自動的に更新されます。
style がnullptr
の場合、QGraphicsScene はQApplication::style() に戻ります。
style()も参照してください 。
QStyle *QGraphicsScene::style() const
シーンのスタイルを返します。シーンにスタイルが明示的に割り当てられていない場合はQApplication::style() と同じです。
setStyle()も参照してください 。
[slot]
void QGraphicsScene::update(const QRectF &rect = QRectF())
rect シーン上の領域の再描画をスケジュールする。
void QGraphicsScene::update(qreal x, qreal y, qreal w, qreal h)
これはオーバーロードされた関数である。
この関数は、update(QRectF(x,y,w,h)) を呼び出すのと等価である;
QList<QGraphicsView *> QGraphicsScene::views() const
このシーンを表示するすべてのビューのリストを返します。
QGraphicsView::scene()も参照してください 。
[virtual protected]
void QGraphicsScene::wheelEvent(QGraphicsSceneWheelEvent *wheelEvent)
このイベントハンドラは、イベントwheelEvent 、シーンのマウスホイールイベントを受け取るために、サブクラスで再実装することができます。
デフォルトでは、イベントはカーソルの下にある一番上の可視アイテムに配信されます。無視された場合、イベントはその下のアイテムに伝搬し、イベントが受け入れられるか、シーンに到達するまで再び伝搬する。イベントを受け入れるアイテムがない場合、イベントは無視されます。
注: この関数で可視とみなされるアイテムの定義については、items() を参照してください。
QGraphicsItem::wheelEvent()も参照 。
qreal QGraphicsScene::width() const
この便利な関数は、sceneRect().width() を呼び出すのと同じである。
height()も参照 。
© 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.