QGuiApplication Class

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

Header: #include <QGuiApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: QCoreApplication
Inherited By:

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モジュールに依存しないので、代わりにQCoreApplicationQWidget ベースの 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)

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

警告: 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 にすると、アプリケーションのダークモードがアクティブになり、ハイコントラストテーマが使用されていない場合、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()、Session Managementも参照してください

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

highDPI scale factor rounding policy を返します。

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::KeyPress およびQEvent::KeyRelease イベント)がイベント・キューから空になると、現在の状態が同期的に更新されます。

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

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

[signal] void QGuiApplication::lastWindowClosed()

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

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

QWindow::close()、QWindow::isTopLevel()、QWindow::transientParent()も参照してください

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

モーダルウィンドウとは、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 の状態を Window Systems の状態と同期させるために使用できる関数です。

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

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

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

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

[static] QWindowList QGuiApplication::topLevelWindows()

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

allWindows()も参照のこと

マクロ・ドキュメント

qGuiApp

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

QCoreApplication::instance() およびqApp参照して ください。

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