QEvent Class

QEventクラスは、すべてのイベント・クラスの基本クラスです。イベント・オブジェクトはイベント・パラメータを含んでいます。詳細...

パブリック・タイプ

enum Type { None, ActionAdded, ActionChanged, ActionRemoved, ActivationChange, …, MaxUser }

プロパティ

パブリック関数

QEvent(QEvent::Type type)
virtual ~QEvent()
void accept()
(since 6.0) virtual QEvent *clone() const
void ignore()
bool isAccepted() const
(since 6.0) bool isInputEvent() const
(since 6.0) bool isPointerEvent() const
(since 6.0) bool isSinglePointEvent() const
virtual void setAccepted(bool accepted)
bool spontaneous() const
QEvent::Type type() const

静的パブリック・メンバー

int registerEventType(int hint = -1)

詳しい説明

Qt のメインイベントループ (QCoreApplication::exec()) は、イベントキューからネイティブウィンドウシステムイベントを取得し、QEvent に変換し、変換されたイベントをQObjectに送信します。

一般的に、イベントは基本的なウィンドウシステムから送信されますが (spontaneous() はtrue を返します )、QCoreApplication::sendEvent() やQCoreApplication::postEvent() (spontaneous() はfalse を返します )、手動でイベントを送信することも可能です。

QObjects QObject::event() 関数を呼び出すことで、イベントを受け取ることができます。この関数をサブクラスで再実装することで、イベント処理をカスタマイズしたり、イベント・タイプを追加したりすることができます。 () はその顕著な例です。デフォルトでは、イベントは () や () のようなイベント・ハンドラにディスパッチされます。()は、オブジェクトが他のオブジェクトのイベントをインターセプトすることを可能にします。QWidget::event QObject::timerEvent QWidget::mouseMoveEvent QObject::installEventFilter

基本的なQEventには、イベント・タイプのパラメータと "accept "フラグしかありません。acceptフラグはaccept()でセットされ、ignore()でクリアされます。これはデフォルトで設定されていますが、サブクラスはコンストラクタでこれをクリアすることを選択するかもしれないので、これに依存しないでください。

QEvent のサブクラスには、特定のイベントを記述する追加のパラメータがあります。

QObject::event(),QObject::installEventFilter(),QCoreApplication::sendEvent(),QCoreApplication::postEvent(),QCoreApplication::processEvents()も参照してください

メンバ・タイプのドキュメント

enum QEvent::Type

この列挙型は、Qt で有効なイベントタイプを定義します。イベントの型と、それぞれの型に特化したクラスは以下の通りです:

定数説明
QEvent::None0イベントではない。
QEvent::ActionAdded114新しいアクションが追加されました (QActionEvent)。
QEvent::ActionChanged113アクションが変更されました (QActionEvent)。
QEvent::ActionRemoved115アクションが削除されました (QActionEvent)。
QEvent::ActivationChange99ウィジェットのトップレベルウィンドウの活性化状態が変更されました。
QEvent::ApplicationActivate121この列挙は非推奨となりました。代わりに ApplicationStateChange を使用してください。
QEvent::ApplicationActivatedApplicationActivateこの列挙型は非推奨となりました。代わりに ApplicationStateChange を使用してください。
QEvent::ApplicationDeactivate122この列挙型は非推奨となりました。代わりに ApplicationStateChange を使用してください。
QEvent::ApplicationFontChange36デフォルトのアプリケーションフォントが変更されました。
QEvent::ApplicationLayoutDirectionChange37アプリケーションのデフォルトのレイアウト方向が変更されました。
QEvent::ApplicationPaletteChange38デフォルトのアプリケーション・パレットが変更されました。
QEvent::ApplicationStateChange214アプリケーションの状態が変更されました。
QEvent::ApplicationWindowIconChange35アプリケーションのアイコンが変更されました。
QEvent::ChildAdded68オブジェクトが子オブジェクト (QChildEvent) を取得しました。
QEvent::ChildPolished69ウィジェットの子が研磨されました (QChildEvent)。
QEvent::ChildRemoved71オブジェクトが子ウィジェットを失いました (QChildEvent)。
QEvent::ChildWindowAdded (since Qt 6.7)223ウィンドウに子ウィンドウが追加されました。
QEvent::ChildWindowRemoved (since Qt 6.7)224子ウィンドウがウィンドウから削除された。
QEvent::Clipboard40クリップボードの内容が変更されました。
QEvent::Close19ウィジェットが閉じられました (QCloseEvent).
QEvent::CloseSoftwareInputPanel200ウィジェットがソフトウェア入力パネル(SIP)を閉じようとしている。
QEvent::ContentsRectChange178ウィジェットのコンテンツのマージンが変更されました。
QEvent::ContextMenu82コンテキストポップアップメニュー (QContextMenuEvent).
QEvent::CursorChange183ウィジェットのカーソルが変更されました。
QEvent::DeferredDelete52オブジェクトがクリーンアップ後に削除された(QDeferredDeleteEvent)
QEvent::DevicePixelRatioChange (since Qt 6.6)222このウィジェットまたはウィンドウの基礎となるバッキングストアの devicePixelRatio が変更されました。
QEvent::DragEnter60ドラッグ&ドロップ操作中にカーソルがウィジェットに入った(QDragEnterEvent)。
QEvent::DragLeave62ドラッグ&ドロップ操作中に、カーソルがウィジェットから離れた (QDragLeaveEvent)。
QEvent::DragMove61ドラッグ&ドロップ操作中 (QDragMoveEvent).
QEvent::Drop63ドラッグ&ドロップ操作が完了した (QDropEvent).
QEvent::DynamicPropertyChange170動的プロパティがオブジェクトに追加、変更、または削除されました。
QEvent::EnabledChange98ウィジェットの有効状態が変更された。
QEvent::Enter10マウスがウィジェットの境界に入った (QEnterEvent).
QEvent::EnterEditFocus150エディタ・ウィジェットが編集のためにフォーカスを得た。QT_KEYPAD_NAVIGATION を定義する必要があります。
QEvent::EnterWhatsThisMode124アプリケーションが "What's This? "モードに入ると、トップレベルウィジェットに送信されます。
QEvent::Expose206ウィンドウの画面上のコンテンツが無効になり、バッキングストアからフラッシュする必要があるときに、ウィンドウに送信されます。
QEvent::FileOpen116ファイルオープン要求 (QFileOpenEvent).
QEvent::FocusIn8ウィジェットまたはウィンドウがキーボード・フォーカスを得た (QFocusEvent)。
QEvent::FocusOut9ウィジェットまたはウィンドウがキーボードフォーカスを失った (QFocusEvent)。
QEvent::FocusAboutToChange23ウィジェットまたはウィンドウのフォーカスが変更されようとしている (QFocusEvent)
QEvent::FontChange97ウィジェットのフォントが変更されました。
QEvent::Gesture198ジェスチャがトリガされました (QGestureEvent).
QEvent::GestureOverride202ジェスチャのオーバーライドが発生しました (QGestureEvent)。
QEvent::GrabKeyboard188アイテムがキーボードグラブを獲得しました (QGraphicsItem のみ )。
QEvent::GrabMouse186アイテムがマウスグラブを獲得しました (QGraphicsItem のみ )。
QEvent::GraphicsSceneContextMenu159グラフィックシーン上のコンテキストポップアップメニュー (QGraphicsSceneContextMenuEvent).
QEvent::GraphicsSceneDragEnter164ドラッグ&ドロップ操作中に、カーソルがグラフィックシーンに入った (QGraphicsSceneDragDropEvent)。
QEvent::GraphicsSceneDragLeave166ドラッグ&ドロップ操作中にカーソルがグラフィックシーンから離れる(QGraphicsSceneDragDropEvent)。
QEvent::GraphicsSceneDragMove165ドラッグ&ドロップ操作がシーン上で進行中である (QGraphicsSceneDragDropEvent)。
QEvent::GraphicsSceneDrop167シーン上でドラッグ&ドロップ操作が完了した (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneHelp163ユーザがグラフィックシーンのヘルプを要求している (QHelpEvent)。
QEvent::GraphicsSceneHoverEnter160マウスカーソルがグラフィックシーンのホバーアイテムに入った (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverLeave162マウスカーソルがグラフィックシーンのホバーアイテムから離れる (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverMove161マウスカーソルがグラフィックシーンのホバーアイテムの内側に移動する (QGraphicsSceneHoverEvent)。
QEvent::GraphicsSceneMouseDoubleClick158グラフィックシーンでマウスをもう一度押す(ダブルクリックする) (QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMouseMove155グラフィックシーンでマウスを動かす (QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMousePress156グラフィックシーンでマウスを押す (QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMouseRelease157グラフィックシーンでマウスを離す (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMove182ウィジェットを移動した (QGraphicsSceneMoveEvent).
QEvent::GraphicsSceneResize181ウィジェットのサイズを変更した (QGraphicsSceneResizeEvent).
QEvent::GraphicsSceneWheel168グラフィックスシーンでマウスホイールがロールした (QGraphicsSceneWheelEvent).
QEvent::GraphicsSceneLeave220グラフィックシーンからカーソルが離れた (QGraphicsSceneWheelEvent).
QEvent::Hide18ウィジェットが非表示になった (QHideEvent).
QEvent::HideToParent27子ウィジェットが非表示になった。
QEvent::HoverEnter127マウスカーソルがホバーウィジェットに入った (QHoverEvent).
QEvent::HoverLeave128マウスカーソルがホバーウィジェット (QHoverEvent) から離れた。
QEvent::HoverMove129マウスカーソルがホバーウィジェット内を移動した (QHoverEvent).
QEvent::IconDrag96ウィンドウのメインアイコンがドラッグされた (QIconDragEvent).
QEvent::IconTextChange101ウィジェットのアイコンテキストが変更されました。(非推奨)
QEvent::InputMethod83入力メソッドが使用されています (QInputMethodEvent)。
QEvent::InputMethodQuery207入力メソッドのクエリイベント (QInputMethodQueryEvent)
QEvent::KeyboardLayoutChange169キーボードレイアウトが変更されました。
QEvent::KeyPress6キーが押されました (QKeyEvent).
QEvent::KeyRelease7キーを離しました (QKeyEvent).
QEvent::LanguageChange89アプリケーションの翻訳が変更されました。
QEvent::LayoutDirectionChange90レイアウトの方向が変わった。
QEvent::LayoutRequest76ウィジェットのレイアウトをやり直す必要がある。
QEvent::Leave11マウスがウィジェットの境界から離れる。
QEvent::LeaveEditFocus151エディタウィジェットが編集中にフォーカスを失う。QT_KEYPAD_NAVIGATIONを定義する必要があります。
QEvent::LeaveWhatsThisMode125アプリケーションが "What's This? "モードを離れるときに、トップレベルウィジェットに送信する。
QEvent::LocaleChange88システム・ロケールが変更されました。
QEvent::NonClientAreaMouseButtonDblClick176マウスのダブルクリックがクライアント領域 (QMouseEvent) の外で発生しました。
QEvent::NonClientAreaMouseButtonPress174マウスのボタン押下がクライアント領域外で発生しました (QMouseEvent)。
QEvent::NonClientAreaMouseButtonRelease175クライアント領域外でマウスボタンを離した (QMouseEvent).
QEvent::NonClientAreaMouseMove173クライアント領域外でマウスの移動が発生した (QMouseEvent).
QEvent::MacSizeChange177ユーザーがウィジェットのサイズを変更した(macOS のみ)。
QEvent::MetaCall43QMetaObject::invokeMethod() を介した非同期メソッド呼び出し。
QEvent::ModifiedChange102ウィジェットの変更状態が変更された。
QEvent::MouseButtonDblClick4マウスが再度押されました (QMouseEvent)。
QEvent::MouseButtonPress2マウスを押した (QMouseEvent).
QEvent::MouseButtonRelease3マウスを離した (QMouseEvent).
QEvent::MouseMove5マウス移動 (QMouseEvent).
QEvent::MouseTrackingChange109マウスのトラッキング状態が変更されました。
QEvent::Move13ウィジェットの位置が変更されました (QMoveEvent).
QEvent::NativeGesture197システムがジェスチャーを検出しました (QNativeGestureEvent).
QEvent::OrientationChange208画面の向きが変更されました(QScreenOrientationChangeEvent)。
QEvent::Paint12画面の更新が必要です (QPaintEvent)。
QEvent::PaletteChange39ウィジェットのパレットが変更されました。
QEvent::ParentAboutToChange131オブジェクトの親が変更されようとしています。QWidget など、一部のオブジェクトタイプにのみ送信されます。
QEvent::ParentChange21オブジェクトの親が変更されました。QWidget など、一部のオブジェクト タイプにのみ送信されます。
QEvent::ParentWindowAboutToChange (since Qt 6.7)225親ウィンドウが変更されようとしています。
QEvent::ParentWindowChange (since Qt 6.7)226親ウィンドウが変更されました。
QEvent::PlatformPanel212プラットフォーム固有のパネルが要求されました。
QEvent::PlatformSurface217ネイティブ・プラットフォーム・サーフェスが作成されたか、または破壊されようとしています (QPlatformSurfaceEvent)。
QEvent::Polish75ウィジェットが研磨されています。
QEvent::PolishRequest74ウィジェットは磨かれるべきです。
QEvent::QueryWhatsThis123ウィジェットに "What's This? "ヘルプがある場合、ウィジェットはイベントを受け入れる必要があります (QHelpEvent)。
QEvent::Quit20アプリケーションが終了しました。
QEvent::ReadOnlyChange (since Qt 5.4)106ウィジェットの読み取り専用状態が変更された。
QEvent::RequestSoftwareInputPanel199ウィジェットがソフトウェア入力パネル(SIP)を開こうとしている。
QEvent::Resize14ウィジェットのサイズが変更されました (QResizeEvent)。
QEvent::ScrollPrepare204オブジェクトがジオメトリ情報を入力する必要がある (QScrollPrepareEvent)。
QEvent::Scroll205オブジェクトが指定された位置までスクロールする必要がある (QScrollEvent)。
QEvent::Shortcut117ショートカットキー処理のために、子でキーが押されました (QShortcutEvent)。
QEvent::ShortcutOverride51ショートカット・キーの処理を上書きするために、子でキーが押されます (QKeyEvent)。ショートカットがトリガーされそうになると、ShortcutOverride がアクティブ・ウィンドウに送られる。これにより、クライアント (ウィジェットなど) は、イベントを受け入れることで、ショートカットを自分で処理することを知らせることができます。ショートカットのオーバーライドが受け入れられた場合、イベントは通常のキー押下としてフォーカスウィジェットに送られます。そうでない場合は、ショートカットアクションがあれば、それをトリガーします。
QEvent::Show17ウィジェットが画面に表示されました (QShowEvent)。
QEvent::ShowToParent26子ウィジェットが表示されました。
QEvent::SockAct50ソケットがアクティブになった。QSocketNotifier の実装に使用。
QEvent::StateMachineSignal192ステートマシンにシグナルが送られた (QStateMachine::SignalEvent)。
QEvent::StateMachineWrapped193イベントが別のイベントのラッパーである、つまり別のイベントを含んでいる (QStateMachine::WrappedEvent)。
QEvent::StatusTip112ステータスのヒントが要求された (QStatusTipEvent)。
QEvent::StyleChange100ウィジェットのスタイルが変更されました。
QEvent::TabletMove87ワコムタブレットの移動 (QTabletEvent).
QEvent::TabletPress92Wacomタブレットが押された(QTabletEvent)。
QEvent::TabletRelease93ワコムタブレットが離された (QTabletEvent).
QEvent::TabletEnterProximity171Wacomタブレットが近接イベント(QTabletEvent)に入り、QApplication に送信されました。
QEvent::TabletLeaveProximity172Wacom タブレット離席イベント (QTabletEvent)、QApplication に送信。
QEvent::TabletTrackingChange (since Qt 5.9)219Wacomタブレットのトラッキング状態が変更されました。
QEvent::ThreadChange22オブジェクトが別のスレッドに移動した。これは、前のスレッドでこのオブジェクトに送信された最後のイベントです。QObject::moveToThread()を参照してください。
QEvent::Timer1通常のタイマー・イベント (QTimerEvent)。
QEvent::ToolBarChange120macOSでツールバーボタンがトグルされる。
QEvent::ToolTip110ツールチップが要求されました (QHelpEvent)。
QEvent::ToolTipChange184ウィジェットのツールチップが変更されました。
QEvent::TouchBegin194タッチスクリーンまたはトラックパッドイベントのシーケンスの開始 (QTouchEvent).
QEvent::TouchCancel209タッチイベントシーケンスのキャンセル (QTouchEvent).
QEvent::TouchEnd196タッチイベントシーケンスの終了 (QTouchEvent).
QEvent::TouchUpdate195タッチスクリーンイベント (QTouchEvent).
QEvent::UngrabKeyboard189アイテムがキーボード・グラブを失った (QGraphicsItem のみ )。
QEvent::UngrabMouse187アイテムがマウス・グラブを失った (QGraphicsItem,QQuickItem)。
QEvent::UpdateLater78ウィジェットは、後で再描画されるようにキューに入れられる必要があります。
QEvent::UpdateRequest77ウィジェットが再描画されるべきである。
QEvent::WhatsThis111ウィジェットが "What's This? "ヘルプを表示する必要がある (QHelpEvent)。
QEvent::WhatsThisClicked118ウィジェットの "What's This? "ヘルプのリンクがクリックされた。
QEvent::Wheel31マウスホイールがロールした (QWheelEvent)。
QEvent::WinEventAct132Windows固有のアクティブ化イベントが発生しました。
QEvent::WindowActivate24ウィンドウがアクティブになりました。
QEvent::WindowBlocked103モーダルダイアログによってウィンドウがブロックされました。
QEvent::WindowDeactivate25ウィンドウが非アクティブになりました。
QEvent::WindowIconChange34ウィンドウのアイコンが変更された。
QEvent::WindowStateChange105window's state (最小化、最大化、またはフルスクリーン) が変更されました (QWindowStateChangeEvent)。
QEvent::WindowTitleChange33ウィンドウのタイトルが変更された。
QEvent::WindowUnblocked104モーダルダイアログが終了した後、ウィンドウのブロックが解除された。
QEvent::WinIdChange203このネイティブ・ウィジェットのウィンドウ・システム識別子が変更されました。
QEvent::ZOrderChange126ウィジェットのZオーダーが変更された。このイベントは、トップレベル・ウィンドウには送信されません。

ユーザーイベントはUserMaxUser の間の値を持つ必要があります:

定数説明
QEvent::User1000ユーザー定義イベント。
QEvent::MaxUser65535最後のユーザー・イベントID。

便宜上、registerEventType() 関数を使用して、アプリケーションのカスタム・イベント・タイプを登録し、予約することができます。そうすることで、アプリケーションの他の場所で既に使用されているカスタム・イベント・タイプを誤って再使用することを避けることができます。

プロパティの説明

accepted : bool

このプロパティは、イベント・オブジェクトの accept フラグを保持します。

acceptパラメータを設定すると、イベント受信者がそのイベントを望んでいることを示します。不要なイベントは、親ウィジェットに伝播される可能性があります。デフォルトでは、isAccepted() は真に設定されていますが、サブクラスはコンストラクタでこれをクリアすることを選択するかもしれないので、これに依存しないでください。

便宜上、accept フラグはaccept() で設定し、ignore() でクリアすることもできます。

注意: QPointerEvent を受け入れると、暗黙的にaccepts そのイベントが持つすべてのpoints を受け入れることになります。

アクセス関数:

bool isAccepted() const
virtual void setAccepted(bool accepted)

メンバ関数ドキュメント

[explicit] QEvent::QEvent(QEvent::Type type)

type 型のイベント・オブジェクトを構築する。

[virtual noexcept] QEvent::~QEvent()

イベントを破棄する。それがposted であった場合、それはポストされるイベントリストから削除される。

void QEvent::accept()

イベントオブジェクトのacceptフラグを設定する。これはsetAccepted(true)を呼び出すのと同じである。

accept パラメータを設定することは、イ ベント受信者がそのイベントを望んでいることを示す。不要なイベントは、親ウィジェットに伝播されるかもしれません。

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

[virtual, since 6.0] QEvent *QEvent::clone() const

このイベントの同一のコピーを作成し、返します。

この関数は Qt 6.0 で導入されました。

void QEvent::ignore()

これは、setAccepted(false)を呼び出すのと同じです。

acceptパラメータをクリアすることは、イベント受信者がそのイベントを望んでいないことを示します。不要なイベントは、親ウィジェットに伝搬される可能性があります。

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

[noexcept, since 6.0] bool QEvent::isInputEvent() const

イベントオブジェクトがQInputEvent またはそのサブクラスの 1 つである場合、true を返します。

この関数は Qt 6.0 で導入されました。

[noexcept, since 6.0] bool QEvent::isPointerEvent() const

イベントオブジェクトがQPointerEvent またはそのサブクラスの1つである場合、true を返します。

この関数は Qt 6.0 で導入されました。

[noexcept, since 6.0] bool QEvent::isSinglePointEvent() const

イベントオブジェクトがQSinglePointEvent のサブクラスであればtrue を返します。

この関数は Qt 6.0 で導入されました。

[static noexcept] int QEvent::registerEventType(int hint = -1)

カスタム・イベント・タイプを登録し、返します。提供されたhint が利用可能であれば、それが使用されます。そうでなければ、まだ登録されていないQEvent::UserQEvent::MaxUser の間の値が返されます。hint の値がQEvent::UserQEvent::MaxUser の間にない場合は無視される。

利用可能な値がすでにすべて取られているか、プログラムがシャットダウンしている場合は -1 を返す。

注:この関数はスレッドセーフです。

bool QEvent::spontaneous() const

イベントがアプリケーションの外部で発生した場合(システム・イベント)はtrue を返し、そうでない場合はfalse を返します。

QEvent::Type QEvent::type() const

イベントのタイプを返します。

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