QGraphicsWidget Class

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

Header: #include <QGraphicsWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QGraphicsObject and QGraphicsLayoutItem
Inherited By:

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 とは異なる、カスタム・ドラッグ&ドロップ・フレームワークを提供します。標準のドラッグ&ドロップフレームワーク。
ウィジェット アイテムはモダリティをサポートしません。完全なモダリティのサポート。

QGraphicsWidget は、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

virtualtype() 関数によって返される値。

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

プロパティの説明

autoFillBackground : bool

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

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

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

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

アクセス関数:

bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

Qt::WA_OpaquePaintEventQt::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 に設定する。 この関数を呼び出すと、アイテムの位置とサイズが変更される。アイテムはまず移動され、次にサイズが変更されます。

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

アクセス関数

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()、QGraphicsSceneResizeEvent 、およびQGraphicsLayoutも参照してください

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()、QMenuaddAction()、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::EnabledChange,QEvent::FontChange,QEvent::StyleChange,QEvent::PaletteChange,QEvent::ParentChange,QEvent::LayoutDirectionChange, およびQEvent::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)

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

grabKeyboard() およびgrabMouse()参照。

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

event に対するこのイベント・ハンドラは、QEvent::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)

Reimplements: (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() に対応します。
paletteQGraphicsWidget::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

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

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)

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

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

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

[virtual protected] void QGraphicsWidget::polishEvent()

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

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

QRectF QGraphicsWidget::rect() const

QRectFこの関数は、QRectF(QPointF(),size()) と同等です。

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

void QGraphicsWidget::releaseShortcut(int id)

与えられたid のショートカットを Qt のショートカットシステムから削除します。ウィジェットは、(同じキーシーケンスを持つ他のショートカットがない限り)そのショートカットのキーシーケンスの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 が真の場合、与えられたid を持つショートカットの自動繰り返しが有効になります。

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

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

enabled がtrueの場合、与えられた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)

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

ウィジェットのウィンドウフレームのマージンをlefttoprightbottom に設定します。

[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)

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

ungrabKeyboard() およびungrabMouse()も参照

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

event 用のこのイベント・ハンドラは、QEvent::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()も参照して ください。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。