QGraphicsWidget Class

QGraphicsWidgetクラスは、QGraphicsScene のすべてのウィジェット・アイテムの基本クラスです

ヘッダー #include <QGraphicsWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
を継承する:QGraphicsObject そしてQGraphicsLayoutItem
継承元:

QGraphicsProxyWidget

パブリックな型

enum anonymous { Type }

プロパティ

パブリック関数

QGraphicsWidget(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags())
virtual ~QGraphicsWidget()
QList<QAction *> actions() const
void addAction(QAction *action)
void addActions(const QList<QAction *> &actions)
void adjustSize()
bool autoFillBackground() const
Qt::FocusPolicy focusPolicy() const
QGraphicsWidget *focusWidget() const
QFont font() const
void getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
int grabShortcut(const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut)
void insertAction(QAction *before, QAction *action)
void insertActions(QAction *before, const QList<QAction *> &actions)
bool isActiveWindow() const
QGraphicsLayout *layout() const
Qt::LayoutDirection layoutDirection() const
virtual void paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
QPalette palette() const
QRectF rect() const
void releaseShortcut(int id)
void removeAction(QAction *action)
void resize(const QSizeF &size)
void resize(qreal w, qreal h)
void setAttribute(Qt::WidgetAttribute attribute, bool on = true)
void setAutoFillBackground(bool enabled)
void setContentsMargins(QMarginsF margins)
void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom)
void setFocusPolicy(Qt::FocusPolicy policy)
void setFont(const QFont &font)
void setGeometry(qreal x, qreal y, qreal w, qreal h)
void setLayout(QGraphicsLayout *layout)
void setLayoutDirection(Qt::LayoutDirection direction)
void setPalette(const QPalette &palette)
void setShortcutAutoRepeat(int id, bool enabled = true)
void setShortcutEnabled(int id, bool enabled = true)
void setStyle(QStyle *style)
void setWindowFlags(Qt::WindowFlags wFlags)
void setWindowFrameMargins(QMarginsF margins)
void setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom)
void setWindowTitle(const QString &title)
QSizeF size() const
QStyle *style() const
bool testAttribute(Qt::WidgetAttribute attribute) const
void unsetLayoutDirection()
void unsetWindowFrameMargins()
Qt::WindowFlags windowFlags() const
QRectF windowFrameGeometry() const
QRectF windowFrameRect() const
QString windowTitle() const
Qt::WindowType windowType() const

再実装パブリック関数

virtual QRectF boundingRect() const override
virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual void setGeometry(const QRectF &rect) override
virtual QPainterPath shape() const override
virtual int type() const override

パブリック・スロット

bool close()

シグナル

静的パブリックメンバ

void setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second)

保護された関数

virtual void changeEvent(QEvent *event)
virtual void closeEvent(QCloseEvent *event)
virtual bool focusNextPrevChild(bool next)
virtual void grabKeyboardEvent(QEvent *event)
virtual void grabMouseEvent(QEvent *event)
virtual void hideEvent(QHideEvent *event)
virtual void initStyleOption(QStyleOption *option) const
virtual void moveEvent(QGraphicsSceneMoveEvent *event)
virtual void polishEvent()
virtual void resizeEvent(QGraphicsSceneResizeEvent *event)
virtual void showEvent(QShowEvent *event)
virtual void ungrabKeyboardEvent(QEvent *event)
virtual void ungrabMouseEvent(QEvent *event)
virtual bool windowFrameEvent(QEvent *event)
virtual Qt::WindowFrameSection windowFrameSectionAt(const QPointF &pos) const

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

virtual bool event(QEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override
virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
virtual bool sceneEvent(QEvent *event) override
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override
virtual void updateGeometry() override

詳細説明

QGraphicsWidgetは、QGraphicsItem 。多くの点でQWidget に似ています:

QGraphicsItem とは異なり、QGraphicsWidget は抽象クラスではありません。サブクラス化することなく、QGraphicsWidget のインスタンスを作成できます。この方法は、子ウィジェットをレイアウトにまとめることだけを目的とするウィジェットに便利です。

QGraphicsWidgetは、高度な入力フォーカス処理、例えば、タブフォーカスやアクティブ化、またはレイアウトが必要な場合、独自のカスタムアイテムのベースアイテムとして使用できます。

QGraphicsWidgetはQWidget に似ており、APIも似ているので、QGraphicsItem の代わりに、QWidget のウィジェットをQGraphicsWidgetに移植する方が簡単です。

注: QWidget ベースのウィジェットは、QGraphicsProxyWidget を使用して、QGraphicsScene に直接埋め込むことができます。

QGraphicsWidgetとQWidget の顕著な違いは、次のとおりです:

QGraphicsWidgetQWidget
座標とジオメトリは、qreals(プラットフォームによってはdoubleまたはfloat)で定義されます。QWidget は整数ジオメトリ ( , ) を使用します。QPoint QRect
ウィジェットを表示するためにshow() を呼び出す必要はありません。QWidget は、 () を呼び出すまで、デフォルトで非表示です。show
ウィジェット属性のサブセットがサポートされています。すべてのウィジェット属性がサポートされています。
トップレベル・アイテムのスタイルのデフォルトはQGraphicsScene::styleトップ・レベル・ウィジェットのスタイルのデフォルトは次のとおりです。QApplication::style
グラフィックス・ビューは、QWidget とは異なる、カスタム・ドラッグ&ドロップ・フレームワークを提供します。標準のドラッグ&ドロップフレームワーク。
ウィジェット アイテムはモダリティをサポートしません。完全なモダリティのサポート。

QtGraphicsWidget は、Qt のウィジェット属性のサブセット (Qt::WidgetAttribute) をサポートしています。この表に記載されていない属性は、サポートされていないか、未使用です。

ウィジェット属性使用方法
Qt::WA_SetLayoutDirectionsetLayoutDirection() によって設定され、unsetLayoutDirection() によってクリアされます。この属性をテストして、ウィジェットにlayoutDirection が明示的に割り当てられているかどうかを確認できます。 属性が設定されていない場合、layoutDirection() が継承されます。
Qt::WA_RightToLeftsetLayoutDirection() によって切り替えられます。親/シーンから継承されます。設定されている場合、ウィジェットのレイアウトは、水平に配置されたウィジェットを右から左に並べます。
Qt::WA_SetStylesetStyle() によって設定および解除される。この属性が設定されている場合、ウィジェットにはスタイルが明示的に割り当てられています。未設定の場合、ウィジェットはシーンまたはアプリケーションのスタイルを使用します。
Qt::WA_ResizedsetGeometry ()とresize ()によって設定される。
Qt::WA_SetPalettesetPalette() によって設定される。
Qt::WA_SetFontsetFont() で設定します。
Qt::WA_WindowPropagationウィンドウ・ウィジェットへの伝搬を有効にします。

QGraphicsWidget はQObjectQGraphicsItem の両方を継承していますが、親アイテムと子アイテムの関係を管理するには、QObjectではなく QGraphicsItem が提供する関数を使用する必要があります。これらの関数は、アイテムの積み重ね順序や所有権を制御します。

注: QObject::parent ()は、QGraphicsWidgetsに対して常にnullptr を返す必要がありますが、このポリシーは厳密には定義されていません。

QGraphicsProxyWidgetQGraphicsItemウィジェットとレイアウトも参照してください

メンバ型ドキュメント

enum QGraphicsWidget::anonymous

仮想type() 関数が返す値。

定数説明
QGraphicsWidget::Type11グラフィックウィジェット項目

プロパティの説明

autoFillBackground : bool

このプロパティは、ウィジェットの背景が自動的に塗りつぶされるかどうかを保持します。

このプロパティを有効にすると、Qt はpaint() メソッドを呼び出す前にウィジェットの背景を塗りつぶします。使用される色は、ウィジェットのpalette からQPalette::Window カラー・ロールによって定義されます。

さらに、WA_OpaquePaintEvent または WA_NoSystemBackground 属性が設定されていない限り、Windows は常にQPalette::Window で塗りつぶされます。

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

アクセス関数:

bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

Qt::WA_OpaquePaintEvent およびQt::WA_NoSystemBackgroundも参照してください

focusPolicy : Qt::FocusPolicy

このプロパティは、ウィジェットがキーボードフォーカスを受け入れる方法を保持する。

フォーカス・ポリシーは、ウィジェットがタブ操作でキーボード・フォーカスを受け入れる場合はQt::TabFocus 、クリック操作でフォーカスを受け入れる場合はQt::ClickFocus 、両方を受け入れる場合はQt::StrongFocus 、全くフォーカスを受け入れない場合はQt::NoFocus (デフォルト) となります。

キーボード・イベントを処理する場合、ウィジェットのキーボード・フォーカスを有効にする必要があります。これは通常、ウィジェットのコンストラクタで行います。例えば、QLineEdit コンストラクタは setFocusPolicy(Qt::StrongFocus) を呼び出します。

フォーカス・ポリシーを有効にすると(つまり、Qt::NoFocus 以外)、QGraphicsWidget は自動的に ItemIsFocusable フラグを有効にします。ウィジェットでQt::NoFocus を設定すると、ItemIsFocusable フラグがクリアされます。ウィジェットに現在キーボード・フォーカスがある場合、ウィジェットは自動的にフォーカスを失います。

アクセス関数:

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

focusInEvent(),focusOutEvent(),keyPressEvent(),keyReleaseEvent(),enabledも参照のこと

font : QFont

このプロパティはウィジェットのフォントを保持する

このプロパティは、ウィジェットのフォントを提供します。

QFont は、明示的に定義されたフォント・プロパティと、ウィジェットの親から暗黙的に継承されたプロパティから構成されます。したがって、font() は、setFont() で設定されたものとは異なるフォントを返すことができます。この方式により、フォントの継承項目に影響を与えることなく、フォントの単一項目を定義することができます。

ウィジェットのフォントが変更されると、親ウィジェットに対してそのエントリを解決します。ウィジェットに親ウィジェットがない場合は、シーンに対してエントリを解決します。その後、ウィジェットは自分自身にFontChange イベントを送信し、すべての子孫に通知して、同様にフォントを解決できるようにします。

デフォルトでは、このプロパティには、アプリケーションのデフォルトフォントが含まれます。

アクセス関数:

QFont font() const
void setFont(const QFont &font)

QApplication::font()、QGraphicsScene::fontQFont::resolve()も参照してください

geometry : QRectF

このプロパティは、ウィジェットのジオメトリを保持する。

アイテムのジオメトリをrect に設定します。 この関数を呼び出すと、アイテムの位置とサイズが変更されます。アイテムはまず移動され、次にサイズが変更されます。

この関数を呼び出す副作用として、ウィジェットは移動イベントとサイズ変更イベントを受け取ります。また、ウィジェットにレイアウトが割り当てられている場合、レイアウトが有効になります。

アクセス関数

virtual void setGeometry(const QRectF &rect) override
void setGeometry(qreal x, qreal y, qreal w, qreal h)

通知シグナル:

geometry() およびresize()も参照してください

layout : QGraphicsLayout*

このプロパティは、ウィジェットのレイアウトを保持します。

新しいレイアウトが割り当てられる前に、既存のレイアウトマネージャはすべて削除されます。layoutnullptr の場合、ウィジェットはレイアウトなしで残されます。既存のサブウィジェットのジオメトリは影響を受けません。

QGraphicsWidget は の所有権を取ります。layout

現在、layout またはそのすべてのサブレイアウトによって管理されているすべてのウィジェットは、自動的にこのアイテムにレペアレントされます。その後、レイアウトは無効化され、子ウィジェットのジオメトリは、このアイテムのgeometry() と contentsMargins() に従って調整されます。layout によって明示的に管理されていない子ウィジェットは、このウィジェットに割り当てられた後も、レイアウトの影響を受けません。

現在このウィジェットを管理しているレイアウトがない場合、 layout() はnullptr を返します。

アクセス関数

QGraphicsLayout *layout() const
void setLayout(QGraphicsLayout *layout)

通知シグナル:

void layoutChanged()

layoutDirection : Qt::LayoutDirection

このプロパティは、このウィジェットのレイアウト方向を保持する。

このプロパティは、このウィジェットおよびすべての子孫ウィジェットのQt::WA_RightToLeft 属性を変更します。また、このウィジェットのQt::WA_SetLayoutDirection 属性も設定します。

ウィジェットのレイアウト方向は、レイアウトマネージャがこのウィジェットのサブウィジェットを水平に配置する順序を決定します。デフォルト値は、アプリケーションの言語とロケールに依存し、通常、単語の読み書きと同じ方向です。Qt::LeftToRight の場合、レイアウトはこのウィジェットの左側から右に向かってサブウィジェットを配置し始めます。Qt::RightToLeft はその逆で、レイアウトは右端から左に向かってウィジェットを配置します。

サブウィジェットは親からレイアウト方向を継承します。トップレベルのウィジェットアイテムは、QGraphicsScene::layoutDirection からレイアウト方向を継承します。setLayoutDirection() を呼び出してウィジェットのレイアウト方向を変更すると、ウィジェットは自分自身にLayoutDirectionChange イベントを送信し、新しいレイアウト方向をすべての子孫に伝搬します。

関数にアクセスします:

Qt::LayoutDirection layoutDirection() const
void setLayoutDirection(Qt::LayoutDirection direction)
void unsetLayoutDirection()

QWidget::layoutDirection およびQApplication::layoutDirectionも参照してください

maximumSize : const QSizeF

このプロパティは、ウィジェットの最大サイズを保持する。

setMaximumSize(),maximumSize(),minimumSize,preferredSizeも参照のこと

minimumSize : const QSizeF

このプロパティは、ウィジェットの最小サイズを保持する。

setMinimumSize(),minimumSize(),preferredSize,maximumSizeも参照のこと

palette : QPalette

このプロパティはウィジェットのパレットを保持する

このプロパティは、ウィジェットのパレットを提供する。パレットは、カラーグループ(例:QPalette::Button)と状態(例:QPalette::Inactive)の色とブラシを提供し、ウィジェットとその子の一般的な外観を緩やかに定義します。

QPalette は、明示的に定義されたカラーグループと、ウィジェットの親から暗黙的に継承されたグループから構成されます。このため、palette() は setPalette() で設定されたものとは異なるパレットを返すことができます。この方式により、パレットに継承されたエントリに影響を与えることなく、パレット内の単一のエントリを定義できます。

ウィジェットのパレットが変更されると、親ウィジェットに対してそのエントリを解決し、親ウィジェットがない場合は、シーンに対して解決します。その後、自分自身にPaletteChange イベントを送信し、すべての子孫に通知して、同様にパレットを解決できるようにします。

デフォルトでは、このプロパティにはアプリケーションのデフォルトパレットが含まれます。

アクセス関数:

QPalette palette() const
void setPalette(const QPalette &palette)

QGuiApplication::palette ()、QGraphicsScene::paletteQPalette::resolve)も参照して ください。

preferredSize : const QSizeF

このプロパティは、ウィジェットの優先サイズを保持する。

setPreferredSize(),preferredSize(),minimumSize,maximumSizeも参照のこと

size : QSizeF

このプロパティは、ウィジェットのサイズを保持する。

resize() を呼び出すと、ウィジェットはminimumSize() とmaximumSize() で囲まれたsize にリサイズされる。このプロパティは、ウィジェットの幅と高さ(例えば、右端と下端)にのみ影響し、ウィジェットの位置と左上隅は影響を受けません。

ウィジェットのサイズ変更は、ウィジェットの新旧サイズを伴うGraphicsSceneResize イベントを即座に受信するトリガとなります。このイベントが到着したときに、ウィジェットにレイアウトが割り当てられている場合、レイアウトがアクティブになり、子ウィジェットのジオメトリが自動的に更新されます。

このプロパティは、親ウィジェットのレイアウトには影響しません。ウィジェット自体が親レイアウトによって管理されている場合、例えば、レイアウトが割り当てられた親ウィジェットがある場合、そのレイアウトはアクティブになりません。

デフォルトでは、このプロパティには、幅と高さがゼロのサイズが含まれます。

アクセス関数

QSizeF size() const
void resize(const QSizeF &size)
void resize(qreal w, qreal h)

通知シグナル:

setGeometry()、QGraphicsSceneResizeEventQGraphicsLayoutも参照してください

sizePolicy : const QSizePolicy

このプロパティは、ウィジェットのサイズポリシーを保持します。

sizePolicy(),setSizePolicy(),QWidget::sizePolicy()も参照してください

windowFlags : Qt::WindowFlags

このプロパティは、ウィジェットのウィンドウフラグを保持する。

ウィンドウ・フラグは、ウィンドウ・タイプ(例えば、Qt::Dialog )と、ウィンドウの動作に関するヒントを与えるいくつかのフラグの組み合わせです。動作はプラットフォームに依存します。

デフォルトでは、このプロパティにはウィンドウ・フラグは含まれていません。

ウィンドウはパネルです。Qt::Window フラグを設定すると、ItemIsPanel フラグが自動的に設定されます。Qt::Window フラグをクリアすると、ItemIsPanel フラグもクリアされる。ItemIsPanelフラグは、Qt::Window とは無関係に設定できることに注意。

アクセス関数:

Qt::WindowFlags windowFlags() const
void setWindowFlags(Qt::WindowFlags wFlags)

isWindow() およびisPanel()も参照のこと

windowTitle : QString

このプロパティはウィンドウのタイトル(キャプション)を保持する。

このプロパティはウィンドウにのみ使用されます。

デフォルトでは、タイトルが設定されていない場合、このプロパティには空の文字列が格納されます。

アクセス関数

QString windowTitle() const
void setWindowTitle(const QString &title)

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

QGraphicsWidget::QGraphicsWidget(QGraphicsItem *parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags())

QGraphicsWidgetインスタンスを構築します。オプションの引数parentQGraphicsItem のコンストラクタに渡されます。オプションのwFlags 引数は、ウィジェットのウィンドウフラグを指定します(例えば、ウィジェットをウィンドウにするか、ツールにするか、ポップアップにするか、など)。

[virtual noexcept] QGraphicsWidget::~QGraphicsWidget()

QGraphicsWidget インスタンスを破棄します。

QList<QAction *> QGraphicsWidget::actions() const

このウィジェットのアクションの(おそらく空の)リストを返します。

insertAction(),removeAction(),QWidget::actions(),QAction::associatedWidgets(),QAction::associatedGraphicsWidgets()も参照

void QGraphicsWidget::addAction(QAction *action)

アクションaction をこのウィジェットのアクションリストに追加します。

すべての QGraphicsWidgets は、QActionのリストを持っていますが、それらはさまざまな方法でグラフィカルに表現することができます。QAction リスト(actions() によって返される)のデフォルトの使用は、コンテキストQMenu を作成することです。

QGraphicsWidget は、各アクションを1つだけ持つべきで、すでに持っているアクションを追加しても、同じアクションが2度ウィジェットに入ることはありません。

removeAction()、insertAction()、actions()、QWidget::addAction()も参照

void QGraphicsWidget::addActions(const QList<QAction *> &actions)

アクションactions をこのウィジェットのアクションリストに追加します。

removeAction(),QMenu,addAction(),QWidget::addActions()も参照

void QGraphicsWidget::adjustSize()

ウィジェットのサイズを有効な優先サイズのヒントに調整する。

この関数は、アイテムが初めて表示されるときに暗黙的に呼び出されます。

effectiveSizeHint() およびQt::MinimumSizeも参照のこと

[override virtual] QRectF QGraphicsWidget::boundingRect() const

再実装:QGraphicsItem::boundingRect() const.

[virtual protected] void QGraphicsWidget::changeEvent(QEvent *event)

このイベントハンドラは、ステートの変更を処理するために再実装することができる。

このイベントで変更された状態は、event から取得できる。

変更イベントには以下が含まれる:QEvent::ActivationChange QEvent::EnabledChangeQEvent::FontChangeQEvent::StyleChangeQEvent::PaletteChangeQEvent::ParentChangeQEvent::LayoutDirectionChangeQEvent::ContentsRectChange

[slot] bool QGraphicsWidget::close()

ウィジェットを閉じるには、この関数を呼び出す。

ウィジェットが閉じられた場合はtrue を返し、そうでない場合はfalse を返します。このスロットは、最初にウィジェットにQCloseEvent を送信します。ウィジェットは、イベントを受け入れるかどうかわかりません。イベントが無視された場合、何も起こりません。イベントが受け入れられた場合、ウィジェットはhide() を返します。

ウィジェットにQt::WA_DeleteOnClose 属性が設定されている場合は、削除されます。

[virtual protected] void QGraphicsWidget::closeEvent(QCloseEvent *event)

このイベント・ハンドラは、event 、ウィジェットのクローズ・イベントを受け取るためにサブクラスで再実装することができます。デフォルトの実装は、イベントを受け取ります。

close() およびQCloseEventも参照してください

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

再インプリメント:QGraphicsObject::event(QEvent *ev)。

event を処理します。QGraphicsWidget は以下のイベントを処理します:

イベント使用法
ポーランド語ウィジェットが表示されてからしばらく後にウィジェットに配信されます。
GraphicsSceneMoveローカル位置が変更された後にウィジェットに配信されます。
GraphicsSceneResizeサイズが変更された後にウィジェットに配信される。
表示表示前のウィジェットに配信。
隠す非表示後のウィジェットに配信されます。
パレット変更パレットが変更された後にウィジェットに配信されます。
フォント変更フォントが変更された後にウィジェットに配信されます。
EnabledChange有効状態が変更された後にウィジェットに配信されます。
スタイル変更スタイルが変更された後にウィジェットに配信されます。
レイアウト方向変更レイアウト方向が変更された後にウィジェットに配信されます。
ContentsRectChangeコンテンツマージン/コンテンツ矩形が変更された後にウィジェットに配信されます。

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

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

[virtual protected] bool QGraphicsWidget::focusNextPrevChild(bool next)

TabとShift+Tabに適切なように、キーボード・フォーカスを与える新しいウィジェットを見つけ、新しいウィジェットが見つかればtrue を返し、見つからなければfalse を返す。next が真の場合、この関数は前方を検索し、next が偽の場合、後方を検索する。

ウィジェットとそのサブウィジェットに特別なフォーカス処理を提供するために、この関数を再実装したい場合があります。例えば、ウェブ・ブラウザは、現在のアクティブなリンクを前方または後方に移動し、ページ上の最後または最初のリンクに到達したときだけ基本実装を呼び出すように、この関数を再実装するかもしれません。

子ウィジェットは親ウィジェットの focusNextPrevChild() を呼び出しますが、フォーカスをどこに移すかは、子ウィジェットを含むウィンドウだけが決定します。オブジェクトに対してこの関数を再実装することで、すべての子ウィジェットのフォーカスのトラバーサルを制御できるようになります。

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

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

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

QGraphicsWidget *QGraphicsWidget::focusWidget() const

このウィジェット、このウィジェットの子ウィジェット、または子孫ウィジェットが現在入力フォーカスを持っている場合、この関数はそのウィジェットへのポインタを返す。子孫ウィジェットに入力フォーカスがない場合は、nullptr が返される。

QGraphicsItem::focusItem() およびQWidget::focusWidget()も参照のこと

[signal] void QGraphicsWidget::geometryChanged()

このシグナルは、ジオメトリがsetGeometry() で変更されるたびに発行される。

注: プロパティgeometry のノーティファイア・シグナル。プロパティsize に対するノーティファイア・シグナル。

[override virtual] void QGraphicsWidget::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

再実装:QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const.

ウィジェットのコンテンツのマージンを取得します。マージンはqrealへのポインタとしてleft,top,right,bottom に格納されます。各引数はnullptr を渡すことで省略できます。

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

void QGraphicsWidget::getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

ウィジェットのウィンドウフレームのマージンを取得します。マージンはqrealsへのポインタとしてleft,top,right,bottom に格納される。各引数は、nullptr を渡すことで省略できます。

setWindowFrameMargins() およびwindowFrameRect()も参照してください

[virtual protected] void QGraphicsWidget::grabKeyboardEvent(QEvent *event)

このイベント・ハンドラは、eventQEvent::GrabKeyboard イベントに対する通知を受け取るために、サブクラスで再実装することができる。

grabKeyboard() およびgrabMouse()も参照してください

[virtual protected] void QGraphicsWidget::grabMouseEvent(QEvent *event)

このイベント・ハンドラは、eventQEvent::GrabMouse イベントに対する通知を受け取るために、サブクラスで再実装することができる。

grabMouse() およびgrabKeyboard()も参照してください

int QGraphicsWidget::grabShortcut(const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut)

Qt のショートカットシステムに、指定されたcontext で指定されたキーsequence を探すショートカットを追加します。contextQt::ApplicationShortcut の場合、ショートカットはアプリケーション全体に適用されます。そうでない場合は、このウィジェットにローカルなQt::WidgetShortcut か、ウィンドウ自体にローカルなQt::WindowShortcut のどちらかになります。ウィンドウの一部でないウィジェット(つまり、トップ・レベル・ウィジェットとその子ウィジェット)の場合、Qt::WindowShortcut ショートカットはシーンに適用されます。

同じキーsequence が複数のウィジェットでつかまれている場合、キーsequence が発生すると、QEvent::Shortcut イベントが適用されるすべてのウィジェットに非決定的な順序で送られますが、``ambiguous'' フラグは true に設定されます。

警告 その代わりに、(同等のメニューオプションやツールバーボタンが必要な場合は)必要なショートカットキーシーケンスでQActionを作成するか、キーシーケンスだけが必要な場合はQShortcutを作成してください。QActionQShortcut は、すべてのイベント・フィルタリングを処理し、ユーザーがキー・シーケンスをトリガーしたときにトリガーされるシグナルを提供するので、この低レベル関数よりも使いやすい。

releaseShortcut(),setShortcutEnabled(),QWidget::grabShortcut()も参照の こと。

[virtual protected] void QGraphicsWidget::hideEvent(QHideEvent *event)

このイベントハンドラは、Hide イベントに対して、ウィジェットが非表示になった後に配信されます。例えば、ウィジェットが以前に表示されていたときに、ウィジェットまたはその祖先の1つに対して setVisible(false) が呼び出された場合などです。

このイベント・ハンドラを再実装して、ウィジェットが非表示になったことを検出できます。eventQEvent::accept() またはQEvent::ignore() を呼び出しても、効果はありません。

showEvent()、QWidget::hideEvent()、ItemVisibleChangeも参照してください

[override virtual protected] void QGraphicsWidget::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)

再実装:QGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)。

[override virtual protected] void QGraphicsWidget::hoverMoveEvent(QGraphicsSceneHoverEvent *event)

再実装:QGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)。

[virtual protected] void QGraphicsWidget::initStyleOption(QStyleOption *option) const

現在の状態に基づいてこのウィジェットのスタイルオプションオブジェクトを生成し、その出力をoption に格納します。デフォルトの実装では、option に以下のプロパティを設定します。

スタイル・オプション プロパティ
状態QStyle::State_EnabledQGraphicsItem::isEnabled() に対応する。
state & に対応します。QStyle::State_HasFocusQGraphicsItem::hasFocus() に対応。
状態QStyle::State_MouseOverQGraphicsItem::isUnderMouse() に対応。
方向QGraphicsWidget::layoutDirection() に対応する。
rectQGraphicsWidget::rect().toRect() に対応します。
パレットQGraphicsWidget::palette() に対応します。
フォントメトリクスQFontMetrics(QGraphicsWidget::font()) に対応します。

QGraphicsWidget のサブクラスは、基本実装を呼び出し、qstyleoption_cast<>() を使用してoption の型をテストするか、ウィジェット固有のオプションを格納する前にQStyleOption::Type をテストする必要があります。

例えば

void MyGroupBoxWidget::initStyleOption(QStyleOption *option) const
{
    QGraphicsWidget::initStyleOption(option);
    if (QStyleOptionGroupBox *box = qstyleoption_cast<QStyleOptionGroupBox *>(option)) {
        // Add group box specific state.
        box->flat = isFlat();
        ...
    }
}

QStyleOption::initFrom()も参照してください

void QGraphicsWidget::insertAction(QAction *before, QAction *action)

アクションbefore の前に、アクションaction をこのウィジェットのアクションリストに挿入する。beforenullptr であるか、before がこのウィジェットの有効なアクションでない場合、アクションを追加します。

QGraphicsWidget は、各アクションを1つだけ持つべきです。

removeAction(),addAction(),QMenu,actions(),QWidget::insertActions()も参照

void QGraphicsWidget::insertActions(QAction *before, const QList<QAction *> &actions)

アクションbefore の前に、アクションactions をこのウィジェットのアクションリストに挿入する。beforenullptr であるか、before がこのウィジェットの有効なアクションでない場合、アクションを追加します。

QGraphicsWidget は、各アクションを最大1つまで持つことができます。

removeAction()、QMenuinsertAction()、QWidget::insertActions()も参照

bool QGraphicsWidget::isActiveWindow() const

このウィジェットのウィンドウがアクティブウィンドウにある場合、またはウィジェットがウィンドウを持たないがアクティブシーン(すなわち、現在フォーカスを持つシーン)にある場合、true を返す。

アクティブウィンドウとは、現在入力フォーカスを持つ子ウィジェットを含むか、それ自身が入力フォーカスを持つウィンドウのことである。

QGraphicsScene::activeWindow()、QGraphicsScene::setActiveWindow()、isActive()も参照してください

[override virtual protected] QVariant QGraphicsWidget::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)

再実装:QGraphicsItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)を再実装します。

QGraphicsWidget は、アイテムの状態変更に関連するイベントをキャッチして配信するために、この関数の基本実装を使用します。このため、サブクラスがベース実装を呼び出すことは非常に重要です。

change は変更のタイプを指定し、 は新しい値です。value

例えば、QGraphicsWidget は、ItemVisibleChange を使用してShowHide イベントを配信し、ItemPositionHasChanged を使用してMove イベントを配信し、ItemParentChange を使用してParentChange イベントを配信し、フォーカス・チェインを管理します。

QGraphicsWidget 位置の変更を追跡するために、デフォルトで ItemSendsGeometryChanges フラグを有効にします。

QGraphicsItem::itemChange()も参照してください

QGraphicsLayout *QGraphicsWidget::layout() const

このウィジェットのレイアウトを返します。現在このウィジェットを管理しているレイアウトがない場合は、nullptr

備考: プロパティ・レイアウトのゲッター関数です。

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

[virtual protected] void QGraphicsWidget::moveEvent(QGraphicsSceneMoveEvent *event)

このイベントハンドラは、GraphicsSceneMove イベントに対して、ウィジェットが移動した(例えば、ローカル位置が変更された)後に配信されます。

このイベントは、アイテムがローカルに移動されたときのみ配信されます。setTransform() を呼び出したり、アイテムの祖先を移動しても、アイテムのローカル位置には影響しません。

ウィジェットが移動したことを検出するために、このイベントハンドラを再実装することができます。event に対してQEvent::accept() やQEvent::ignore() を呼び出しても、何の影響もありません。

ItemPositionChange およびItemPositionHasChangedも参照してください

[override virtual] void QGraphicsWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

再実装:QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)。

[virtual] void QGraphicsWidget::paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

この仮想関数はQGraphicsScene によって呼び出され、painteroptionwidget を使用するウィンドウのウィンドウフレームをローカル座標で描画する。基本実装では、現在のスタイルを使用してフレームとタイトル バーを描画します。

ウィジェットのウィンドウ・フレームのカスタム描画を提供するために、QGraphicsWidget のサブクラスでこの関数を再実装できます。

QGraphicsItem::paint()も参照してください

[virtual protected] void QGraphicsWidget::polishEvent()

このイベントは、アイテムが構築された後、それが表示されるか、またはシーンを通してアクセスされる前のある時点で、シーンによってアイテムに配信されます。このイベントハンドラを使用して、アイテムが完全に構築されることを必要とする、ウィジェットの直前の初期化を行うことができます。

基本実装は何もしません。

QRectF QGraphicsWidget::rect() const

アイテムのローカル rect をQRectF として返す。 この関数はQRectF(QPointF(),size()) と等価である。

setGeometry() およびresize()も参照してください

void QGraphicsWidget::releaseShortcut(int id)

Qt のショートカットシステムから、指定されたid のショートカットを削除します。ウィジェットは、(同じキーシーケンスを持つ他のショートカットがない限り)そのショートカットのキーシーケンスのQEvent::Shortcut イベントを受け取らなくなります。

警告 Qt のショートカットシステムは、親ウィジェットが破棄されると自動的にショートカットを削除するので、通常はこの関数を使用する必要はありません。この低レベル関数よりも使いやすいので、QActionQShortcut を使ってショートカットを処理するのがベストです。また、これは高価な操作であることにも注意してください。

grabShortcut(),setShortcutEnabled(),QWidget::releaseShortcut()も参照してください

void QGraphicsWidget::removeAction(QAction *action)

このウィジェットのアクションリストからアクションaction を削除します。

insertAction(),actions(),insertAction(),QWidget::removeAction()も参照してください

void QGraphicsWidget::resize(qreal w, qreal h)

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

与えられたwidth (w) とheight (h) でリサイズを構築します。この便宜関数は、resize(QSizeF(w, h)) を呼び出すことと同じです。

注: size プロパティのセッター関数。

setGeometry() およびsetTransform()も参照してください

[virtual protected] void QGraphicsWidget::resizeEvent(QGraphicsSceneResizeEvent *event)

このイベントハンドラは、GraphicsSceneResize イベントに対して、ウィジェットのサイズが変更された(つまり、ローカルサイズが変更された)後に配信されます。event は、古いサイズと新しいサイズの両方を含みます。

このイベントは、ウィジェットがローカルでサイズ変更されたときのみ配信されます。ウィジェットまたはその祖先やビューでsetTransform() を呼び出しても、ウィジェットのローカルサイズには影響しません。

このイベントハンドラを再実装して、ウィジェットのサイズが変更されたことを検出できます。eventQEvent::accept() またはQEvent::ignore() を呼び出しても、効果はありません。

geometry() およびsetGeometry()も参照してください

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

再実装:QGraphicsItem::sceneEvent(QEvent *event)。

QGraphicsWidgetsceneEvent() の実装は、単にeventQGraphicsWidget::event() に渡します。event QGraphicsWidget のサブクラスでこの関数を再実装する必要はありません。

event が認識され処理された場合はtrue を返し、そうでない場合はfalse を返します。

QGraphicsItem::sceneEvent()も参照

void QGraphicsWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)

もしon が真なら、この関数はattribute を有効にする;そうでなければattribute を無効にする。

どの属性がサポートされ、何のためにサポートされるかの完全なリストについては、QGraphicsWidget のクラス・ドキュメントを参照してください。

testAttribute() およびQWidget::setAttribute()も参照

void QGraphicsWidget::setContentsMargins(QMarginsF margins)

ウィジェットのコンテンツ・マージンをmargins に設定します。

コンテンツマージンは、サブウィジェットとレイアウトの配置を定義するために、割り当てられたレイアウトによって使用されます。マージンは、サブウィジェットをそれ自身のジオメトリの一部分だけに制約するウィジェットで特に便利です。例えば、レイアウトを持つグループボックスは、サブウィジェットをフレーム内に配置しますが、タイトルの下に配置します。

ウィジェットのコンテンツのマージンを変更すると、常にupdate() がトリガされ、割り当てられたレイアウトが自動的に有効になります。ウィジェットは、ContentsRectChange イベントを受け取ります。

getContentsMargins() とsetGeometry()も参照してください

void QGraphicsWidget::setContentsMargins(qreal left, qreal top, qreal right, qreal bottom)

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

ウィジェットのコンテンツマージンをleft,top,right,bottom に設定します。

void QGraphicsWidget::setGeometry(qreal x, qreal y, qreal w, qreal h)

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

注意: プロパティgeometry のセッター関数です。

geometry() およびresize()も参照してください

void QGraphicsWidget::setLayout(QGraphicsLayout *layout)

このウィジェットのレイアウトをlayout に設定します。新しいレイアウトが割り当てられる前に、既存のレイアウトマネージャはすべて削除されます。layoutnullptr の場合、ウィジェットはレイアウトなしで残されます。既存のサブウィジェットのジオメトリは影響を受けません。

現在、layout またはそのすべてのサブレイアウトによって管理されているすべてのウィジェットは、自動的にこのアイテムにレペアレントされます。その後、レイアウトは無効化され、子ウィジェットのジオメトリは、このアイテムのgeometry() と contentsMargins() に従って調整されます。layout によって明示的に管理されていない子ウィジェットは、このウィジェットに割り当てられた後も、レイアウトの影響を受けません。

QGraphicsWidget は、 の所有権を取ります。layout

注: プロパティlayout のセッター関数です。

layout(),QGraphicsLinearLayout::addItem(),QGraphicsLayout::invalidate()も参照してください

void QGraphicsWidget::setShortcutAutoRepeat(int id, bool enabled = true)

enabled が true の場合、与えられたid を持つショートカットの自動繰り返しが有効になり、そうでない場合は無効になる。

grabShortcut()、releaseShortcut()、QWidget::setShortcutAutoRepeat()も参照

void QGraphicsWidget::setShortcutEnabled(int id, bool enabled = true)

enabled が真の場合、与えられたid を持つショートカットが有効になり、そうでない場合、そのショートカットは無効になります。

警告 Qt のショートカットシステムは、ウィジェットが隠されたり現れたり、フォーカスが当たったり当たらなくなったりすると、自動的にショートカットを有効/無効にするので、通常はこの関数を使う必要はありません。この低レベル関数よりも使いやすいので、QActionQShortcut を使ってショートカットを処理するのがベストです。

grabShortcut(),releaseShortcut(),QWidget::setShortcutEnabled()も参照のこと

void QGraphicsWidget::setStyle(QStyle *style)

ウィジェットのスタイルをstyle に設定します。QGraphicsWidgetstyle の所有権を持ちません

スタイルが割り当てられていない場合、またはstylenullptr の場合、ウィジェットはQGraphicsScene::style() を使用する (これが設定されている場合)。そうでない場合、ウィジェットはQApplication::style() を使用する。

この関数は、stylenullptr でない場合はQt::WA_SetStyle 属性を設定し、そうでない場合は属性をクリアする。

style()も参照

[static] void QGraphicsWidget::setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second)

Tab キーが押されたときにキーボード・フォーカスがfirst ウィジェットからsecond ウィジェットに移動するように、second ウィジェットをフォーカス・ウィジェットのリングの周りに移動します。

second ウィジェットのタブ・オーダーが変更されるので、次のようにチェーンの順番を決める必要があることに注意してください:

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

このような順序ではありません

// WRONG
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to d

firstnullptr の場合、シーンがタブ・フォーカスを得たとき(つまり、ユーザが Tab キーを押してシーンにフォーカスが移ったとき)、second が入力フォーカスを受け取る最初のウィジェットであるべきことを示します。secondnullptr の場合、シーンが BackTab フォーカスを得た場合、first が最初にフォーカスを得るウィジェットであるべきことを示します。

デフォルトでは、タブ順序は、ウィジェットの作成順序を使用して暗黙的に定義されます。

focusPolicyウィジェットのキーボード・フォーカスも参照してください

void QGraphicsWidget::setWindowFrameMargins(QMarginsF margins)

ウィジェットのウィンドウフレームのマージンをmargins に設定します。デフォルトのフレームのマージンはスタイルによって提供され、現在のウィンドウフラグに依存します。

独自のウィンドウ装飾を描画したい場合は、独自のフレーム余白を設定して、デフォルトの余白を上書きすることができます。

unsetWindowFrameMargins(),getWindowFrameMargins(),windowFrameRect()も参照

void QGraphicsWidget::setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom)

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

ウィジェットのウィンドウフレームのマージンをleft,top,right,bottom に設定します。

[override virtual] QPainterPath QGraphicsWidget::shape() const

再実装:QGraphicsItem::shape() const.

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

このイベントハンドラは、Show イベントに対して、ウィジェットが表示される前に配信されます。例えば、ウィジェットまたはその祖先の 1 つに対して setVisible(true)が呼び出され、そのウィジェットが以前に非表示になっていた場合などです。

このイベント・ハンドラを再実装して、ウィジェットがいつ表示されたかを検出できます。eventQEvent::accept() またはQEvent::ignore() を呼び出しても、効果はありません。

hideEvent()、QWidget::showEvent()、ItemVisibleChangeも参照してください

[override virtual protected] QSizeF QGraphicsWidget::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

再実装:QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const.

QStyle *QGraphicsWidget::style() const

ウィジェットのスタイルへのポインタを返します。このウィジェットに明示的に割り当てられたスタイルがない場合、シーンのスタイルが代わりに返されます。また、シーンに割り当てられたスタイルがない場合、この関数はQApplication::style() を返します。

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

bool QGraphicsWidget::testAttribute(Qt::WidgetAttribute attribute) const

attribute がこのウィジェットで有効な場合はtrue を返し、そうでない場合はfalse を返す。

setAttribute()も参照のこと

[override virtual] int QGraphicsWidget::type() const

再実装:QGraphicsItem::type() const.

[virtual protected] void QGraphicsWidget::ungrabKeyboardEvent(QEvent *event)

このイベント・ハンドラは、eventQEvent::UngrabKeyboard イベントに対する通知を受け取るために、サブクラスで再実装することができる。

ungrabKeyboard() およびungrabMouse()も参照してください

[virtual protected] void QGraphicsWidget::ungrabMouseEvent(QEvent *event)

このイベント・ハンドラは、eventQEvent::UngrabMouse イベントに対する通知を受け取るために、サブクラスで再実装することができる。

ungrabMouse() およびungrabKeyboard()も参照してください

void QGraphicsWidget::unsetWindowFrameMargins()

ウィンドウ枠のマージンをスタイルで指定されたデフォルト値にリセットします。

setWindowFrameMargins()、getWindowFrameMargins()、windowFrameRect()も参照

[override virtual protected] void QGraphicsWidget::updateGeometry()

再インプリメント:QGraphicsLayoutItem::updateGeometry().

このウィジェットが現在レイアウトによって管理されている場合、この関数は、ウィジェットのサイズヒントが変更され、それに応じてレイアウトがウィジェットのサイズ変更と再配置を行う必要があることをレイアウトに通知します。

ウィジェットのsizeHint() が変更された場合、この関数を呼び出します。

QGraphicsLayout::invalidate()も参照してください

[virtual protected] bool QGraphicsWidget::windowFrameEvent(QEvent *event)

このイベントハンドラは、event 、このウィジェットがウィンドウの場合、ウィンドウフレームのイベントを受け取ります。その基本実装は、移動、サイズ変更などのデフォルトのウィンドウフレームのインタラクションのサポートを提供します。

独自のカスタムウィンドウフレームインタラクションサポートを提供するために、QGraphicsWidget のサブクラスでこのハンドラを再実装することができます。

event が認識され処理された場合はtrue を返し、そうでない場合はfalse を返す。

event()も参照

QRectF QGraphicsWidget::windowFrameGeometry() const

ウィジェットのジオメトリを、ウィンドウフレームを含む親座標で返します。

windowFrameRect(),getWindowFrameMargins(),setWindowFrameMargins()も参照してください

QRectF QGraphicsWidget::windowFrameRect() const

ウィジェットのローカル矩形(ウィンドウフレームを含む)を返します。

windowFrameGeometry(),getWindowFrameMargins(),setWindowFrameMargins()も参照

[virtual protected] Qt::WindowFrameSection QGraphicsWidget::windowFrameSectionAt(const QPointF &pos) const

位置pos にあるウィンドウフレーム部、またはこの位置にウィンドウフレーム部がない場合はQt::NoSection を返す。

この関数はQGraphicsWidget の基本実装でウィンドウフレームのインタラクションに使用されています。

ウィンドウの移動やサイズ変更をインタラクティブにカスタマイズしたい場合は、この関数を再実装することができます。たとえば、ウィンドウの右下隅のサイズ変更のみを許可したい場合、Qt::BottomRightSection を除くすべてのセクションに対してQt::NoSection を返すように、この関数を再実装することができます。

windowFrameEvent()、paintWindowFrame()、windowFrameGeometry()も参照

Qt::WindowType QGraphicsWidget::windowType() const

ウィジェットのウィンドウ・タイプを返します。

windowFlags(),isWindow(),isPanel()も参照

© 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.