QGuiApplication Class

QGuiApplicationクラスはGUIアプリケーションの制御フローとメイン設定を管理します。さらに...

ヘッダー #include <QGuiApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
を継承する: QCoreApplication
継承元:

QApplication

プロパティ

パブリック関数

QGuiApplication(int &argc, char **argv)
virtual ~QGuiApplication()
qreal devicePixelRatio() const
bool isSavingSession() const
bool isSessionRestored() const
QNativeInterface *nativeInterface() const
QString sessionId() const
QString sessionKey() const

再実装パブリック関数

virtual bool notify(QObject *object, QEvent *event) override

パブリック・スロット

(since 6.5) void setBadgeNumber(qint64 number)

シグナル

void applicationDisplayNameChanged()
void applicationStateChanged(Qt::ApplicationState state)
void commitDataRequest(QSessionManager &manager)
void focusObjectChanged(QObject *focusObject)
void focusWindowChanged(QWindow *focusWindow)
void fontDatabaseChanged()
void lastWindowClosed()
void layoutDirectionChanged(Qt::LayoutDirection direction)
void primaryScreenChanged(QScreen *screen)
void saveStateRequest(QSessionManager &manager)
void screenAdded(QScreen *screen)
void screenRemoved(QScreen *screen)

静的パブリックメンバ

QWindowList allWindows()
QString applicationDisplayName()
Qt::ApplicationState applicationState()
void changeOverrideCursor(const QCursor &cursor)
QClipboard *clipboard()
QString desktopFileName()
bool desktopSettingsAware()
int exec()
QObject *focusObject()
QWindow *focusWindow()
QFont font()
Qt::HighDpiScaleFactorRoundingPolicy highDpiScaleFactorRoundingPolicy()
QInputMethod *inputMethod()
bool isLeftToRight()
bool isRightToLeft()
Qt::KeyboardModifiers keyboardModifiers()
Qt::LayoutDirection layoutDirection()
QWindow *modalWindow()
Qt::MouseButtons mouseButtons()
QCursor *overrideCursor()
QPalette palette()
QString platformName()
QScreen *primaryScreen()
Qt::KeyboardModifiers queryKeyboardModifiers()
bool quitOnLastWindowClosed()
void restoreOverrideCursor()
QScreen *screenAt(const QPoint &point)
QList<QScreen *> screens()
void setApplicationDisplayName(const QString &name)
void setDesktopFileName(const QString &name)
void setDesktopSettingsAware(bool on)
void setFont(const QFont &font)
void setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)
void setLayoutDirection(Qt::LayoutDirection direction)
void setOverrideCursor(const QCursor &cursor)
void setPalette(const QPalette &pal)
void setQuitOnLastWindowClosed(bool quit)
void setWindowIcon(const QIcon &icon)
QStyleHints *styleHints()
void sync()
QWindow *topLevelAt(const QPoint &pos)
QWindowList topLevelWindows()
QIcon windowIcon()

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

virtual bool event(QEvent *e) override

マクロ

詳しい説明

QGuiApplicationはメインイベントループを含み、ウィンドウシステムや他のソースからのすべてのイベントが処理され、ディスパッチされます。また、アプリケーションの初期化と終了を処理し、セッション管理を提供します。さらに、QGuiApplicationはシステム全体とアプリケーション全体の設定のほとんどを処理します。

Qtを使用するGUIアプリケーションの場合、アプリケーションのウィンドウ数が0、1、2、またはそれ以上であっても、QGuiApplicationオブジェクトは正確に1つです。非GUIのQtアプリケーションでは、Qt GUI モジュールに依存しないので、代わりにQCoreApplication を使用してください。QWidget ベースの Qt アプリケーションでは、QApplication を代わりに使用してください。QWidget インスタンスを作成するために必要な機能を提供しています。

QGuiApplicationオブジェクトには、instance ()関数からアクセスできます。 ()関数は、グローバルなqApp ポインタと同等のポインタを返します。

QGuiApplicationの主な役割は以下のとおりです:

  • palette ()、font ()、styleHints ()のようなユーザーのデスクトップ設定でアプリケーションを初期化します。例えば、ユーザーが何らかのコントロールパネルを使ってデスクトップをグローバルに変更する場合に備えて、これらのプロパティを追跡します。
  • イベント処理を実行します。つまり、基礎となるウィンドウ システムからイベントを受け取り、関連するウィジェットにディスパッチします。sendEvent() やpostEvent() を使用することで、独自のイベントをウィンドウに送信できます。
  • 一般的なコマンドライン引数を解析し、それに応じて内部状態を設定します。詳細はconstructor documentation を参照してください。
  • translate() を使って、ユーザーに見える文字列をローカライズする。
  • clipboard() のような魔法のようなオブジェクトを提供します。
  • アプリケーションのウィンドウについて知っています。topLevelAt() を使って特定の位置にあるウィンドウを尋ねたり、topLevelWindows() のリストを取得したりできます。
  • アプリケーションのマウス・カーソル処理を管理します。setOverrideCursor() を参照してください。
  • 高度なセッション管理をサポートします。これにより、ユーザがログアウトしたときにアプリケーションを優雅に終了させたり、終了できない場合にシャットダウン処理をキャンセルしたり、さらには将来のセッションのためにアプリケーション全体の状態を保持したりすることが可能になります。詳しくはisSessionRestored(),sessionId(),commitDataRequest(),saveStateRequest() を参照してください。

QGuiApplicationオブジェクトは多くの初期化を行うので、ユーザーインターフェースに関連する他のオブジェクトが作成される前に作成されなければなりません。QGuiApplicationは一般的なコマンドライン引数も扱います。従って、アプリケーション自体でargv の解釈や変更が行われる前に、このオブジェクトを作成するのが良い方法です。

関数のグループ
システム設定desktopSettingsAware(),setDesktopSettingsAware(),styleHints(),palette(),setPalette(),font(),setFont().
イベント処理exec(),processEvents(),exit(),quit()。sendEvent(),postEvent(),sendPostedEvents(),removePostedEvents(),notify()。
ウィンドウズallWindows(),topLevelWindows(),focusWindow(),clipboard(),topLevelAt()。
高度なカーソル操作overrideCursor(),setOverrideCursor(),restoreOverrideCursor()。
セッション管理isSessionRestored(),sessionId(),commitDataRequest(),saveStateRequest()。
その他startingUp(),closingDown()。

QCoreApplicationQAbstractEventDispatcherQEventLoopも参照

プロパティ・ドキュメンテーション

applicationDisplayName : QString

このプロパティは、このアプリケーションのユーザから見える名前を保持します。

この名前は、ウィンドウのタイトルなどでユーザーに表示されます。必要に応じて翻訳することもできます。

設定されていない場合、アプリケーション表示名のデフォルトはアプリケーション名です。

アクセス関数:

QString applicationDisplayName()
void setApplicationDisplayName(const QString &name)

ノーティファイア・シグナル:

void applicationDisplayNameChanged()

applicationNameも参照してください

desktopFileName : QString

このプロパティは、このアプリケーションのデスクトップエントリのベース名を保持します。

これは、freedesktop デスクトップエントリの仕様に従って、このアプリケーションを表すデスクトップエントリの、フルパスや末尾の ".desktop" 拡張子を除いたファイル名です。

このプロパティは、どのデスクトップエントリがアプリケーションを表しているかを正確に示すものであり、ウィンドウシステムが不正確なヒューリスティックに頼ることなくそのような情報を取得するために必要なものです。

freedesktop デスクトップエントリ仕様の最新版はここから入手できます。

アクセス関数:

QString desktopFileName()
void setDesktopFileName(const QString &name)

layoutDirection : Qt::LayoutDirection

このプロパティは、このアプリケーションのデフォルトのレイアウト方向を保持します。

システム起動時、または方向が明示的にQt::LayoutDirectionAuto に設定されている場合、デフォルトのレイアウト方向はアプリケーションの言語に依存します。

Notifier シグナルは Qt 5.4 で導入されました。

アクセス関数です:

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

アクセス関数: Notifierシグナル:

void layoutDirectionChanged(Qt::LayoutDirection direction)

QWidget::layoutDirection,isLeftToRight(),isRightToLeft()も参照してください

[read-only] platformName : const QString

このプロパティは、基盤となるプラットフォーム・プラグインの名前を保持します。

QPA プラットフォーム・プラグインはqtbase\src\plugins\platforms にあります。このドキュメントの執筆時点では、以下のプラットフォーム・プラグイン名がサポートされています:

  • android
  • cocoa は macOS 用のプラットフォーム・プラグインです。
  • directfb
  • eglfs は、実際のウィンドウ システム(X11 や Wayland など)を使用せずに、EGL および OpenGL ES 2.0 上で Qt5 アプリケーションを実行するためのプラットフォーム プラグインです。詳しくはEGLFSを参照してください。
  • ios (tvOSにも使われています)
  • linuxfb フレームバッファに直接書き込みます。詳しくはLinuxFBを参照。
  • minimal は、独自のプラットフォーム・プラグインを書きたい開発者のための例として提供されています。しかし、サーバーのようなGUIのない環境でGUIアプリケーションを実行するためにプラグインを使うこともできる。
  • minimalegl はプラグインの例です。
  • offscreen
  • qnx
  • windows
  • wayland はWaylandディスプレイ・サーバー・プロトコル用のプラットフォーム・プラグインで、いくつかのLinuxデスクトップや組み込みシステムで使われている。
  • xcb はX11ウィンドウ・システム用のプラグインで、一部のLinuxデスクトップ・プラットフォームで使用されています。

注意: QGuiApplication を指定せずにこの関数を呼び出すと、利用可能な場合はデフォルトのプラットフォーム名が返されます。デフォルトのプラットフォーム名は、-platform コマンドラインオプションやQT_QPA_PLATFORM 環境変数の影響を受けません。

組み込み Linux デバイス用のプラットフォームプラグインの詳細については、Qt for Embedded Linux を参照してください。

アクセス関数

QString platformName()

[read-only] primaryScreen : QScreen* const

このプロパティは、アプリケーションのプライマリ(またはデフォルト)画面を保持します。

これは、特に指定がない限り、QWindowsが最初に表示される画面となります。

primaryScreenChanged シグナルは Qt 5.6 で導入されました。

アクセス関数です:

QScreen *primaryScreen()

Notifierシグナル:

void primaryScreenChanged(QScreen *screen)

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

quitOnLastWindowClosed : bool

このプロパティは、最後のウィンドウが閉じられたときにアプリケーションが暗黙的に終了するかどうかを保持します。

デフォルトはtrue です。

このプロパティがtrue の場合、アプリケーションは最後に表示されたプライマリウィンドウ(つまり、一時的な親を持たないトップレベルのウィンドウ)が閉じられたときに終了しようとします。

例えば、まだアクティブなQEventLoopLocker インスタンスが存在する場合や、QEvent::Quit イベントが無視される場合などです。

アクセス関数:

bool quitOnLastWindowClosed()
void setQuitOnLastWindowClosed(bool quit)

quit() およびQWindow::close()も参照のこと

windowIcon : QIcon

このプロパティは、デフォルトのウィンドウアイコンを保持します。

関数にアクセスします:

QIcon windowIcon()
void setWindowIcon(const QIcon &icon)

QWindow::setIcon() およびアプリケーション・アイコンの設定も参照のこと

メンバ関数ドキュメント

QGuiApplication::QGuiApplication(int &argc, char **argv)

ウィンドウシステムを初期化し、argvargc コマンドライン引数でアプリケーションオブジェクトを構築する。

警告 argcargv によって参照されるデータは、QGuiApplication オブジェクトの寿命が尽きるまで有効でなければなりません。また、argc は0より大きく、argv は有効な文字列を少なくとも1つ含んでいなければなりません。

グローバルポインタqApp は、このアプリケーションオブジェクトを指します。作成するアプリケーション・オブジェクトは1つだけです。

このアプリケーション・オブジェクトは、paint devices (ピク スマップ、ビットマップなどを含む)の前に構築されなければなりません。

注意: argcargv は、Qt が認識したコマンドライン引数を削除する際に変更される可能性があります。

サポートされているコマンドラインオプション

すべての Qt プログラムは自動的にコマンドラインオプションをサポートし、Qt とウィンドウシステムとのインタラクションを変更することができます。オプションのいくつかは環境変数からもアクセス可能で、アプリケーションがGUIサブプロセスや他のアプリケーションを起動できる場合は、環境変数を使用するのが望ましい方法です(環境変数は子プロセスに継承されます)。迷った場合は、環境変数を使用してください。

現在サポートされているオプションは以下の通りです:

  • -platform platformName[ Qt Platform Abstraction(QPA) プラグインを指定します。

    環境変数QT_QPA_PLATFORM を上書きします。

  • -platformpluginpath path:プラットフォームプラグインへのパスを指定します。

    QT_QPA_PLATFORM_PLUGIN_PATH 環境変数を上書きします。

  • -platformtheme platformTheme, プラットフォームテーマを指定する。

    QT_QPA_PLATFORMTHEME 環境変数を上書きする。

  • -plugin plugin, ロードする追加プラグインを指定する。引数は複数回指定できる。

    環境変数QT_QPA_GENERIC_PLUGINS のプラグインと連結される。

  • -qmljsdebugger=を指定すると、QML/JSデバッガを指定したポートで起動します。値はport:1234 [,block]の形式でなければなりません。blockはオプションで、デバッガが接続するまでアプリケーションを待たせます。
  • -qwindowgeometry geometryはメインウィンドウのジオメトリをX11-syntaxで指定します。例えば-qwindowgeometry 100x100+50+50
  • -qwindowiconデフォルトのウィンドウ・アイコンを設定します。
  • -qwindowtitle最初のウィンドウのタイトルを設定します。
  • -reverseアプリケーションのレイアウト方向をQt::RightToLeft に設定します。 このオプションはデバッグを支援するためのもので、実稼働環境では使用しないでください。デフォルト値は、ユーザーのロケールから自動的に検出されます(QLocale::textDirection()も参照してください)。
  • -session session:以前のセッションからアプリケーションを復元します。

X11では、以下の標準コマンド行オプションが使用できます:

  • -display hostname:screen_number:X11での表示を切り替えます。

    環境変数DISPLAY を上書きします。

  • -geometry geometry、 と同じ。-qwindowgeometry

プラットフォーム固有の引数

-platform オプションには、プラットフォーム固有の引数を指定できます。プラットフォーム・プラグイン名の後にカンマ区切りで指定します。例えば、-platform windows:dialogs=xp,fontengine=freetype

-platform windows

  • altgrQt 5.12 以降)、一部のキーボードにあるAltGr キーをQt::GroupSwitchModifier として検出します。
  • darkmode=[0|1|2] Windows 10 1903 (Qt 5.15以降)で導入されたアプリケーションのダークモードの有効化に対するQtの反応を制御します。

    値 0 はダークモードのサポートを無効にします。

    値 1 を指定すると、アプリケーションのダークモードが有効化され、High Contrast Theme が使用されていない場合、Qt はウィンドウのボーダーを黒に切り替えます。これは、独自のテーマ設定を行うアプリケーションを想定しています。

    値 2 を指定すると、さらに Windows Vista スタイルが無効になり、ダーク モードで簡略化されたパレットを使用する Windows スタイルに切り替わります。これは現在実験的なもので、ダーク モードに適切に適応する新しいスタイルの導入が待たれます。

    ダークモードのサポートを無効にするには、値を 0 または 1 に設定します。

  • dialogs=[xp|none] xp は XP スタイルのネイティブダイアログを使用し、 はそれを無効にします。none
  • fontengine=freetypeFreeTypeフォントエンジンを使用しています。
  • fontengine=gdiQt 6.8 以降)、レガシー GDI ベースのフォントデータベースを使用し、デフォルトで GDI フォントエンジンを使用します。
  • menus=[native|none]Qt 6.8以降)。

    ネイティブメニューは Win32 API を使用して実装され、QMenu ベースのメニューよりもシンプルです。例えば、ウィジェットを配置したり、フォントのようなプロパティを変更したり、ホバーシグナルを提供しません。これらは主にQt Quick を対象としています。デフォルトでは、アプリケーションがQApplication のインスタンスでない場合、またはQt Quick Controls 2 アプリケーション(Qt 5.10 以降)で使用されます。

  • nocolorfonts DirectWrite Color フォントをオフにする(Qt 5.8 以降)。
  • nodirectwrite DirectWrite フォントをオフにする(Qt 5.8 以降)。これは暗黙的に GDI フォントエンジンも選択します。
  • nomousefromtouch オペレーティングシステムによってタッチイベントから合成されたマウスイベントを無視します。
  • nowmpointer Pointer Input Messages 処理をレガシーなマウス処理に切り替える (Qt 5.12 以降)。
  • reverse Right-to-left モードを有効にしました (実験的)。右から左のロケールでは、ウィンドウのタイトルバーがそれに応じて表示されます(Qt 5.13以降)。
  • tabletabsoluterange=<value> WinTab タブレットのマウスモード検出の値を設定します(Legacy、Qt 5.3 以降)。

以下のパラメータは、-platform cocoa (macOS)で使用できます:

  • fontengine=freetypeFreeType フォントエンジンを使用します。

組み込み Linux プラットフォームで利用可能なプラットフォーム固有の引数の詳細については、Qt for Embedded Linux を参照してください。

arguments() およびQGuiApplication::platformNameも参照してください

[virtual noexcept] QGuiApplication::~QGuiApplication()

アプリケーションを破壊します。

[static] QWindowList QGuiApplication::allWindows()

アプリケーション内のすべてのウィンドウのリストを返します。

ウィンドウがない場合は空です。

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

[static] Qt::ApplicationState QGuiApplication::applicationState()

アプリケーションの現在の状態を返します。

アプリケーションの状態変化に反応して、CPU負荷の高いタスクの停止/再開、リソースの解放/ロード、アプリケーションデータの保存/復元などのアクションを実行できます。

[signal] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)

このシグナルは、アプリケーションのstate

applicationState()も参照のこと

[static] void QGuiApplication::changeOverrideCursor(const QCursor &cursor)

現在アクティブなアプリケーション・オーバーライド・カーソルをcursor に変更します。

setOverrideCursor() が呼び出されなかった場合、この関数は何の効果も持たない。

setOverrideCursor()、overrideCursor()、restoreOverrideCursor()、およびQWidget::setCursor()も参照してください

[static] QClipboard *QGuiApplication::clipboard()

クリップボードを操作するためのオブジェクトを返します。

[signal] void QGuiApplication::commitDataRequest(QSessionManager &manager)

このシグナルはセッション管理を扱う。このシグナルは、QSessionManager 、アプリケーションにすべてのデータをコミットさせたいときに発せられる。

通常これは、ユーザーの許可を得た後、開いているファイルをすべて保存することを意味します。さらに、ユーザーがシャットダウンをキャンセルできる手段を提供したい場合もあります。

このシグナルの中でアプリケーションを終了させるべきではありません。その代わりに、セッション・マネージャが、コンテキストに応じて、終了後にこれを行うかどうかを指定します。

警告 このシグナル内では、manager に明示的な許可を求めない限り、ユーザーとの対話はできません。詳細と使用例についてはQSessionManager::allowsInteraction() とQSessionManager::allowsErrorInteraction() を参照のこと。

注意 :このシグナルに接続する場合は、Qt::DirectConnection を使用する必要があります。

isSessionRestored()、sessionId()、saveStateRequest()、およびセッション管理も参照

[static] bool QGuiApplication::desktopSettingsAware()

Qt がシステム標準の色やフォントなどを使うように設定されている場合はtrue を返し、そうでない場合はfalse を返します。デフォルトはtrue です。

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

qreal QGuiApplication::devicePixelRatio() const

システムで検出されたスクリーンデバイスのピクセル比率の最高値を返します。これは物理ピクセルとデバイスに依存しないピクセルの比率です。

この関数は、対象とするウィンドウがわからない場合にのみ使用する。ターゲット・ウィンドウがわかっている場合は、代わりにQWindow::devicePixelRatio() を使用する。

QWindow::devicePixelRatio()も参照

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

再インプリメント:QCoreApplication::event(QEvent *e).

[static] int QGuiApplication::exec()

メイン・イベント・ループに入り、exit ()が呼び出されるまで待機し、exit ()に設定された値(quit ()を経由してexit ()が呼び出された場合は0)を返す。

イベント処理を開始するには、この関数を呼び出す必要がある。メイン・イベント・ループはウィンドウ・システムからイベントを受け取り、アプリケーション・ウィジェットにディスパッチします。

一般的に、exec()を呼び出す前にユーザーとのインタラクションを行うことはできません。

例えば、保留中のイベントがないときに特別な関数を実行するなど、アプリケーションにアイドル処理を実行させるには、0nsのタイムアウトを持つQChronoTimer 。より高度なアイドル処理スキームは、processEvents ()を使用することで実現できる。

クリーンアップ・コードは、アプリケーションのmain() 関数に入れるのではなく、aboutToQuit() シグナルに接続することを推奨します。プラットフォームによっては、QApplication::exec()呼び出しが返らないことがあるからである。

quitOnLastWindowClosedquit ()、exit ()、processEvents ()、QCoreApplication::exec)も 参照のこと。

[static] QObject *QGuiApplication::focusObject()

現在アクティブなウィンドウで、キーイベントなどのフォーカスに関連するイベントの最終受信者となるQObject を返します。

[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)

このシグナルは、フォーカスに結びついたイベントの最終レシーバーが変更されたときに発せられる。focusObject が新しいレシーバーである。

focusObject()も参照のこと

[static] QWindow *QGuiApplication::focusWindow()

キーイベントなど、フォーカスに関連するイベントを受け取るQWindow を返します。

QWindow::requestActivate()も参照してください

[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)

このシグナルは、フォーカスされているウィンドウが変更されたときに発せられる。focusWindow は、新しくフォーカスされたウィンドウである。

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

[static] QFont QGuiApplication::font()

デフォルトのアプリケーションフォントを返します。

setFont()も参照ください

[signal] void QGuiApplication::fontDatabaseChanged()

このシグナルは、使用可能なフォントが変更されたときに発せられる。

これは、アプリケーション・フォントが追加または削除されたときや、システム・フォントが変更されたときに発生します。

QFontDatabase::addApplicationFont()、QFontDatabase::addApplicationFontFromData()、QFontDatabase::removeAllApplicationFonts()、QFontDatabase::removeApplicationFont()も参照のこと

[static] Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()

高DPIスケールファクタ丸めポリシーを返します。

setHighDpiScaleFactorRoundingPolicy()も参照

[static] QInputMethod *QGuiApplication::inputMethod()

は input メソッドを返します。

inputメソッドは、仮想キーボードの状態と位置に関するプロパティを返す。また、現在フォーカスされている入力要素の位置に関する情報も提供します。

QInputMethodも参照してください

[static] bool QGuiApplication::isLeftToRight()

アプリケーションのレイアウト方向がQt::LeftToRight の場合はtrue を返し、そうでない場合はfalse を返す。

layoutDirection() およびisRightToLeft()も参照

[static] bool QGuiApplication::isRightToLeft()

アプリケーションのレイアウト方向がQt::RightToLeft の場合はtrue を返し、そうでない場合はfalse を返す。

layoutDirection() およびisLeftToRight()も参照

bool QGuiApplication::isSavingSession() const

アプリケーションが現在セッションを保存している場合はtrue を返し、そうでない場合はfalse を返す。

これは、commitDataRequest() とsaveStateRequest() が発行されたときだけでなく、その後セッション管理によってウィンドウが閉じられたときにもtrue となる。

sessionId()、commitDataRequest()、saveStateRequest()も参照して ください。

bool QGuiApplication::isSessionRestored() const

アプリケーションが以前のセッションから復元された場合はtrue を返し、そうでない場合はfalse を返す。

sessionId()、commitDataRequest()、saveStateRequest()も参照のこと

[static] Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()

キーボードの修飾キーの現在の状態を返す。現在の状態は、キーボードの状態を自発的に変更するイベント(QEvent::KeyPressQEvent::KeyRelease イベント)のイベントキューが空になると、同期的に更新されます。

これは、呼び出し時に入力デバイスに保持されている実際のキーではなく、上記のイベントの1つで最後に報告された修飾子が反映される可能性があることに注意すべきである。キーが保持されていない場合、Qt::NoModifier が返される。

mouseButtons() およびqueryKeyboardModifiers()も参照のこと

[signal] void QGuiApplication::lastWindowClosed()

このシグナルは、最後に表示されたプライマリ・ウィンドウ(つまり、一時的な親を持たないトップ・レベル・ウィンドウ)が閉じられたときに、exec ()から発せられる。

デフォルトでは、このシグナルが発せられた後、QGuiApplication は終了する。この機能は、quitOnLastWindowClosedfalse に設定することでオフにすることができる。

QWindow::close()、QWindow::isTopLevel()、QWindow::transientParent()も参照の こと。

最近表示されたモーダルウィンドウを返します。モーダルウィンドウが表示されていない場合、この関数はゼロを返します。

モーダルウィンドウとは、そのmodality プロパティがQt::WindowModal またはQt::ApplicationModal に設定されているウィンドウのことです。 ユーザーがプログラムの他の部分を続行する前に、モーダルウィンドウを閉じる必要があります。

モーダルウィンドウはスタックで構成されます。この関数は、スタックの一番上にあるモーダルウィンドウを返します。

Qt::WindowModality およびQWindow::setModality()も参照してください

[static] Qt::MouseButtons QGuiApplication::mouseButtons()

マウスのボタンの現在の状態を返す。現在の状態は、マウスの状態を自発的に変更するイベント(QEvent::MouseButtonPressQEvent::MouseButtonRelease イベント)のイベントキューが空になると、同期的に更新される。

これは、呼び出し時に入力デバイスに保持されている実際のボタンではなく、上記のイベントのいずれかで最後に報告されたマウスボタンを反映する可能性があることに注意すべきである。マウスボタンが保持されていない場合は、Qt::NoButton が返される。

keyboardModifiers()も参照のこと

template <typename QNativeInterface> QNativeInterface *QGuiApplication::nativeInterface() const

アプリケーションの指定された型のネイティブ・インターフェースを返す。

この関数はQNativeInterface 名前空間で定義されているQGuiApplication のプラットフォーム固有の機能へのアクセスを提供します:

QNativeInterface::QWaylandApplication

Waylandアプリケーションのネイティブ・インターフェース

QNativeInterface::QX11Application

X11アプリケーションのネイティブ・インタフェース

要求されたインタフェースが利用できない場合は、nullptr

[override virtual] bool QGuiApplication::notify(QObject *object, QEvent *event)

再実装:QCoreApplication::notify(QObject *receiver, QEvent *event)。

[static] QCursor *QGuiApplication::overrideCursor()

アクティブなアプリケーション・オーバーライド・カーソルを返します。

アプリケーション・カーソルが定義されていない(内部カーソル・スタックが空)場合、この関数はnullptr を返す。

setOverrideCursor() およびrestoreOverrideCursor()も参照

[static] QPalette QGuiApplication::palette()

現在のアプリケーション・パレットを返します。

明示的に設定されていないロールは、システムのプラットフォームテーマを反映します。

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

[static] Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()

キーボードの修飾キーの状態を問い合わせて返す。keyboardModifiers とは異なり、このメソッドは、メソッドを呼び出した時点で入力デバイスに保持されている実際のキーを返します。

キー押下イベントがこのプロセスで受信されていることに依存しないので、たとえばウィンドウを移動しているときに修飾子をチェックすることができます。ほとんどの場合、keyboardModifiers() を使用することに注意してください。 () には、現在処理中のイベントを受信したときの修飾子の状態が格納されているため、より高速で正確です。

keyboardModifiers()も参照

[static] void QGuiApplication::restoreOverrideCursor()

最後のsetOverrideCursor() を取り消す。

setOverrideCursor() が2回呼び出された場合、restoreOverrideCursor() を呼び出すと、最初に設定されたカーソルが有効になります。この関数を2回目に呼び出すと、元のウィジェットのカーソルが復元されます。

setOverrideCursor() およびoverrideCursor()も参照してください

[signal] void QGuiApplication::saveStateRequest(QSessionManager &manager)

このシグナルはセッション管理を扱う。このシグナルは、session manager 、将来のセッションのためにアプリケーションの状態を保持したいときに呼び出される。

例えば、テキストエディタは、編集バッファの現在の内容、カーソルの位置、および現在の編集セッションの他の側面を含む一時ファイルを作成します。

このシグナルの中でアプリケーションを終了させるべきではありません。その代わりに、セッション・マネージャはコンテキストに応じて、この処理を後で行うかもしれませんし、行わないかもしれません。さらに、ほとんどのセッションマネージャーは、アプリケーションの起動直後に保存された状態を要求する可能性が非常に高いです。これによってセッションマネージャはアプリケーションの再起動のポリシーを知ることができます。

警告 このシグナル内では、manager に明示的な許可を求めない限り、ユーザーとの対話は不可能です。詳細はQSessionManager::allowsInteraction() とQSessionManager::allowsErrorInteraction() を参照のこと。

注意 :このシグナルに接続するときは、Qt::DirectConnection

isSessionRestored()、sessionId()、commitDataRequest()、およびセッション管理も参照

[signal] void QGuiApplication::screenAdded(QScreen *screen)

このシグナルは、新しいスクリーンscreen がシステムに追加されるたびに発せられる。

screens()、primaryScreen 、およびscreenRemoved()も参照のこと

[static] QScreen *QGuiApplication::screenAt(const QPoint &point)

スクリーンの外側にある場合はpoint のスクリーン、またはnullptr のスクリーンを返す。

point は、仮想兄弟の各セットの virtualGeometry() との関係である。点が複数の仮想兄弟のセットにマップされる場合、最初にマッチしたものが返される。QWidget::windowHandle()->screen()既知の画面の仮想デスクトップの兄弟のみを検索したい場合は、QScreen::virtualSiblingAt() を使用します。

[signal] void QGuiApplication::screenRemoved(QScreen *screen)

このシグナルは、screen がシステムから削除されるたびに発せられます。このシグナルは、Qtがウィンドウをプライマリ・スクリーンに移動する前に、スクリーン上のウィンドウを管理する機会を提供します。

screens(),screenAdded(),QObject::destroyed(),QWindow::setScreen()も参照してください

[static] QList<QScreen *> QGuiApplication::screens()

アプリケーションが接続しているウィンドウ・システムに関連するすべてのスクリーンのリストを返します。

QString QGuiApplication::sessionId() const

現在のセッションの識別子を返します。

アプリケーションが以前のセッションから復元された場合、この識別子はその以前のセッションと同じになります。セッション識別子は、異なるアプリケーションでも、同じアプリケーションの異なるインスタンスでも、一意であることが保証されています。

isSessionRestored()、sessionKey()、commitDataRequest()、saveStateRequest()も参照のこと

QString QGuiApplication::sessionKey() const

現在のセッションのセッション・キーを返します。

以前のセッションからアプリケーションが復元された場合、このキーは以前のセッションが終了したときのものと同じです。

セッション・キーは、セッションが保存されるたびに変更されます。シャットダウン処理がキャンセルされると、再度シャットダウンするときに別のセッション・キーが使用されます。

isSessionRestored()、sessionId()、commitDataRequest()、saveStateRequest()も参照のこと

[slot, since 6.5] void QGuiApplication::setBadgeNumber(qint64 number)

アプリケーションのバッジをnumber に設定します。

未読メッセージの数などをユーザーにフィードバックするのに便利です。

バッジは macOS の Dock、iOS のホーム画面のアイコン、Windows と Linux のタスクバーのアプリケーションのアイコンに重ねて表示されます。

数がプラットフォームでサポートされている範囲外の場合、数はサポートされている範囲にクランプされます。数値がバッジに収まらない場合、数値は視覚的に消去されることがあります。

数値を 0 に設定すると、バッジは消去されます。

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

applicationNameも参照してください

[static] void QGuiApplication::setDesktopSettingsAware(bool on)

Qt がシステム標準の色やフォントなどを使用するかどうかをon に設定します。 デフォルトでは、これはtrue です。

この関数は、次のようにQGuiApplication オブジェクトを作成する前に呼び出す必要があります:

int main(int argc, char *argv[])
{
    QApplication::setDesktopSettingsAware(false);
    QApplication app(argc, argv);
    // ...
    return app.exec();
}

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

[static] void QGuiApplication::setFont(const QFont &font)

デフォルトのアプリケーション・フォントをfont に変更する。

font()も参照のこと

[static] void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)

アプリケーションの高DPIスケールファクタ丸めポリシーを設定します。policy は、非整数のスケールファクター(Windows 150%など)をどのように扱うかを決定します。

2つの主要なオプションは、小数のスケールファクターを整数に丸めるかどうかです。スケールファクターをそのままにしておくと、ユーザーインターフェイスのサイズはOSの設定と正確に一致しますが、Windowsスタイルなどでは描画エラーが発生する可能性があります。

丸めたい場合は、次にどのタイプの丸めを行うかを決定します。数学的に正しい四捨五入はサポートされていますが、視覚的に最良の結果が得られるとは限りません:1.5倍を1倍("small UI")としてレンダリングするか、2倍("large UI")としてレンダリングするかを考えてください。すべてのオプションの完全なリストについては、Qt::HighDpiScaleFactorRoundingPolicy enumを参照してください。

この関数は、アプリケーション・オブジェクトを作成する前に呼び出す必要があります。QGuiApplication::highDpiScaleFactorRoundingPolicy() アクセサが設定されていれば、その環境が反映されます。

デフォルト値はQt::HighDpiScaleFactorRoundingPolicy::PassThrough です。

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

[static] void QGuiApplication::setOverrideCursor(const QCursor &cursor)

アプリケーション・オーバーライド・カーソルをcursor に設定します。

アプリケーション・オーバーライド・カーソルは、時間がかかる操作中など、アプリケーションが特別な状態にあることをユーザに示すためのものです。

このカーソルは、restoreOverrideCursor() または別の setOverrideCursor() が呼び出されるまで、アプリケーションのすべてのウィジェットに表示されます。

setOverrideCursor()はカーソルをスタックにプッシュし、restoreOverrideCursor()はアクティブなカーソルをスタックからポップします。changeOverrideCursor() は、現在アクティブなアプリケーション・オーバーライド・カーソルを変更します。

すべての setOverrideCursor() の後には、対応するrestoreOverrideCursor() が続く必要があります。

例を示します:

QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
calculateHugeMandelbrot();              // lunch time...
QGuiApplication::restoreOverrideCursor();

overrideCursor()、restoreOverrideCursor()、changeOverrideCursor()、QWidget::setCursor()も参照して ください。

[static] void QGuiApplication::setPalette(const QPalette &pal)

アプリケーションパレットをpal に変更します。

このパレットの色の役割は、システムのプラットフォームテーマと組み合わされ、アプリケーションの最終的なパレットを形成する。

palette()も参照

[static] QStyleHints *QGuiApplication::styleHints()

アプリケーションのスタイル ヒントを返します。

スタイル ヒントは、ダブルクリック間隔、全幅選択など、プラットフォームに依存するプロパティのセットをカプセル化します。

このヒントを使用して、基盤となるプラットフォームとより緊密に統合することができます。

QStyleHintsも参照してください

[static] void QGuiApplication::sync()

Qtの状態をウィンドウシステムの状態と同期させるために使用できる関数です。

この関数は、まずQCoreApplication::processEvents() をコールして Qts イベントを空にし、次にプラットフォームプラグインをウィンドウシステムと同期させ、最後にQCoreApplication::processEvents() をコールして Qts イベントを配信します;

この関数は時間がかかるため、使用は推奨されません。

[static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)

もしあれば、与えられた位置pos にあるトップレベルウィンドウを返します。

[static] QWindowList QGuiApplication::topLevelWindows()

アプリケーションのトップレベル・ウィンドウのリストを返します。

allWindows()も参照

マクロのドキュメント

qGuiApp

一意のアプリケーション・オブジェクトを参照するグローバル・ポインタ。そのオブジェクトがQGuiApplication の場合のみ有効。

QCoreApplication::instance() およびqAppも参照

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