QGuiApplication Class
QGuiApplication クラスは、GUI アプリケーションの制御フローと主な設定を管理します。詳細...
| ヘッダー: | #include <QGuiApplication> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QCoreApplication |
| 継承元: |
プロパティ
|
|
パブリック関数
| 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アプリケーションでは、QWidget インスタンスの作成に必要な機能を提供するQApplication を代わりに使用してください。
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(). |
| Windows | allWindows(),topLevelWindows(),focusWindow(),clipboard(),topLevelAt(). |
| 高度なカーソル処理 | overrideCursor()、setOverrideCursor()、restoreOverrideCursor() など。 |
| セッション管理 | isSessionRestored(),sessionId(),commitDataRequest(),saveStateRequest(). |
| その他 | startingUp(),closingDown(). |
QCoreApplication 、QAbstractEventDispatcher 、およびQEventLoopも参照してください 。
プロパティのドキュメント
applicationDisplayName : QString
このプロパティには、このアプリケーションのユーザーに表示される名前が格納されています
この名前は、たとえばウィンドウのタイトルなどでユーザーに表示されます。必要に応じて翻訳することができます。
設定されていない場合、アプリケーションの表示名はデフォルトでアプリケーション名になります。
アクセス関数:
| QString | applicationDisplayName() |
| void | setApplicationDisplayName(const QString &name) |
Notifierシグナル:
| 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 にあります。本稿執筆時点では、以下のプラットフォームプラグイン名がサポートされています:
androidcocoaは、macOS用のプラットフォームプラグインです。directfbeglfsは、実際のウィンドウシステム(X11やWaylandなど)を使用せずに、EGLおよびOpenGL ES 2.0上でQt5アプリケーションを実行するためのプラットフォームプラグインです。詳細については、EGLFSを参照してください。ios(tvOSでも使用されます)linuxfbはフレームバッファに直接書き込みを行います。詳細については、LinuxFBを参照してください。minimalは、独自のプラットフォームプラグインを作成したい開発者向けのサンプルとして提供されています。ただし、このプラグインを使用すれば、サーバーなどGUIのない環境でもGUIアプリケーションを実行できます。minimaleglはサンプルプラグインです。offscreenqnxwindowswayland一部のLinuxデスクトップや組み込みシステムで使用される、Waylandディスプレイサーバープロトコル用のプラットフォームプラグインです。xcbは、一部のデスクトップLinuxプラットフォームで使用されているX11ウィンドウシステム用のプラグインです。
注: QGuiApplication を指定せずにこの関数を呼び出すと 、利用可能な場合、デフォルトのプラットフォーム名が返されます。デフォルトのプラットフォーム名は、-platform コマンドラインオプションやQT_QPA_PLATFORM 環境変数の影響を受けません。
組み込みLinuxデバイス向けのプラットフォームプラグインの詳細については、『Qt for Embedded Linux』を参照してください。
アクセス関数:
| QString | platformName() |
[read-only] primaryScreen : QScreen*
このプロパティは、アプリケーションのプライマリ(またはデフォルト)画面を指定します。
特に指定がない限り、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)
ウィンドウシステムを初期化し、argv 内の `argc ` コマンドライン引数を使用してアプリケーションオブジェクトを構築します。
警告: `argc ` および `argv ` が参照するデータは 、QGuiApplication オブジェクトの存続期間全体を通じて有効な状態を維持する必要があります。また、`argc ` は 0 より大きく、`argv ` には少なくとも 1 つの有効な文字列が含まれている必要があります。
グローバルなqApp ポインタは、このアプリケーションオブジェクトを指します。アプリケーションオブジェクトは 1 つだけ作成する必要があります。
このアプリケーションオブジェクトは、paint devices (ピクマップ、ビットマップなどを含む)のいずれよりも先に構築されなければなりません。
注: Qt は認識できるコマンドライン引数を削除するため、argc およびargv が変更される場合があります。
サポートされているコマンドラインオプション
すべての Qt プログラムは、Qt とウィンドウシステムの相互作用の方法を変更できる一連のコマンドラインオプションを自動的にサポートしています。これらのオプションの一部は環境変数経由でも設定可能ですが、アプリケーションが GUI サブプロセスや他のアプリケーションを起動できる場合は、環境変数による設定が推奨されます(環境変数は子プロセスに継承されるため)。 迷った場合は、環境変数を使用してください。
現在サポートされているオプションは以下の通りです:
-platformplatformName[:options]:Qt Platform Abstraction(QPA) プラグインを指定します。QT_QPA_PLATFORM環境変数を上書きします。-platformpluginpathpath:プラットフォームプラグインへのパスを指定します。QT_QPA_PLATFORM_PLUGIN_PATH環境変数を上書きします。-platformthemeplatformTheme:プラットフォームのテーマを指定します。QT_QPA_PLATFORMTHEME環境変数を上書きします。-pluginplugin:読み込む追加のプラグインを指定します。この引数は複数回指定可能です。QT_QPA_GENERIC_PLUGINS環境変数に指定されたプラグインと連結されます。-qmljsdebugger=、指定されたポートで QML/JS デバッガを起動します。値はport:1234[,block] の形式で指定する必要があります。ここで、block はオプションであり、指定すると、デバッガが接続するまでアプリケーションが待機します。-qwindowgeometrygeometry:X11構文を使用して、メインウィンドウのウィンドウジオメトリを指定します。例:-qwindowgeometry 100x100+50+50-qwindowicon, デフォルトのウィンドウアイコンを設定します-qwindowtitle, 最初のウィンドウのタイトルを設定します-reverse, アプリケーションのレイアウト方向をQt::RightToLeft に設定します。このオプションはデバッグを支援するためのものであり、本番環境では使用しないでください。デフォルト値はユーザーのロケールから自動的に検出されます(QLocale::textDirection() も参照)。-sessionsession: 以前のセッションからアプリケーションを復元します。
X11 では、以下の標準コマンドラインオプションが利用可能です:
-displayhostname:screen_number: X11上のディスプレイを切り替えます。DISPLAY環境変数を上書きします。-geometrygeometry:-qwindowgeometryと同じです。
プラットフォーム固有の引数
-platform オプションに対して、プラットフォーム固有の引数を指定することができます。これらは、プラットフォームプラグイン名の後にコロンを置き、カンマ区切りのリストとして記述します。例:-platform windows:dialogs=xp,fontengine=freetype 。
-platform windows では、以下のパラメータが利用可能です:
altgr, 一部のキーボードにある「AltGr」キーを「Qt::GroupSwitchModifier 」として検出します(Qt 5.12以降)。darkmode=[0|1|2]Windows 10 1903 で導入されたアプリケーションのダークモードの有効化に対して、Qt がどのように反応するかを制御します(Qt 5.15 以降)。値を 0 に設定すると、ダークモードのサポートが無効になります。
値を 1 に設定すると、アプリケーションのダークモードが有効化され、かつ高コントラストテーマが使用されていない場合、Qt はウィンドウの枠を黒に切り替えます。これは、独自のテーマ実装を行うアプリケーションを対象としています。
値を 2 に設定すると、さらに Windows Vista スタイルが無効化され、ダークモードでは簡略化されたカラーパレットを使用した Windows スタイルに切り替わります。これは、ダークモードに適切に適応する新しいスタイルが導入されるまでの間、実験的な機能として提供されています。
Qt 6.5 以降、デフォルト値は 2 です。ダークモードのサポートを無効にするには、値を 0 または 1 に設定してください。
dialogs=[xp|none]また、xpは XP スタイルのネイティブダイアログを使用し、noneはそれらを無効にします。fontengine=freetype, FreeType フォントエンジンを使用します。fontengine=gdi、レガシーの GDI ベースのフォントデータベースを使用し、デフォルトでは GDI フォントエンジンを使用します(通常、GDI フォントエンジンは一部のフォントタイプやフォントプロパティでのみ使用されます)。(Qt 6.8 以降)。menus=[native|none], ネイティブメニューの使用を制御します。ネイティブメニューは Win32 API を使用して実装されており、例えば、ウィジェットを配置したり、フォントなどのプロパティを変更したりできる一方で、ホバーシグナルを提供しないという点で、QMenu ベースのメニューよりも単純です。 これらは主にQt Quick 向けに設計されています。デフォルトでは、アプリケーションがQApplication のインスタンスでない場合、またはQt Quick Controls 2アプリケーションの場合にこれらが使用されます(Qt 5.10以降)。
nocolorfontsDirectWrite カラーフォントを無効にします(Qt 5.8 以降)。nodirectwriteDirectWrite フォントを無効にします(Qt 5.8 以降)。これにより、GDI フォントエンジンも暗黙的に選択されます。nomousefromtouchオペレーティングシステムによってタッチイベントから合成されたマウスイベントを無視します。nowmpointerポインタ入力メッセージの処理から、従来のマウス処理に切り替えます(Qt 5.12 以降)。reverse右から左へのモードを有効にします(実験的)。右から左へのロケールでは、Windows のタイトルバーがそれに応じて表示されます(Qt 5.13 以降)。tabletabsoluterange=<value>WinTab タブレットのマウスモード検出の値を設定します(レガシー、Qt 5.3 以降)。
-platform cocoa (macOS)では、以下のパラメータが利用可能です:
fontengine=freetype、FreeTypeフォントエンジンを使用します。
組み込み 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()` の呼び出しが戻らない場合があるためです。
関連項目として、 quitOnLastWindowClosed 、quit()、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()
入力メソッドを返します。
この入力メソッドは、仮想キーボードの状態や位置に関するプロパティを返します。また、現在フォーカスが当たっている入力要素の位置に関する情報も提供します。
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 イベント)がイベントキューから処理されるにつれて、同期的に更新されます。
なお、これは呼び出し時点での入力デバイス上の実際のキーの状態を反映しているわけではなく、上記のイベントのいずれかで最後に報告された修飾キーの状態を反映している場合があることに注意してください。キーが押されていない場合は、Qt::NoModifier が返されます。
mouseButtons() およびqueryKeyboardModifiers()も参照してください 。
[signal] void QGuiApplication::lastWindowClosed()
このシグナルは、exec() において、最後に表示されていたプライマリウィンドウ(つまり、一時的な親ウィンドウを持たない最上位のウィンドウ)が閉じられたときに発せられます。
デフォルトでは、このシグナルが発信されると、QGuiApplication は終了します。この動作は、quitOnLastWindowClosed をfalse に設定することで無効にできます。
QWindow::close()、QWindow::isTopLevel()、およびQWindow::transientParent()も参照してください 。
[static] QWindow *QGuiApplication::modalWindow()
最後に表示されたモーダルウィンドウを返します。表示中のモーダルウィンドウがない場合、この関数は0を返します。
モーダルウィンドウとは、modality プロパティがQt::WindowModal またはQt::ApplicationModal に設定されているウィンドウのことです。ユーザーがプログラムの他の部分に進むには、モーダルウィンドウを閉じる必要があります。
モーダルウィンドウはスタック構造で管理されています。この関数は、スタックの最上層にあるモーダルウィンドウを返します。
Qt::WindowModality およびQWindow::setModality()も参照してください 。
[static] Qt::MouseButtons QGuiApplication::mouseButtons()
マウスのボタンの現在の状態を返します。現在の状態は、マウスの状態を自発的に変更するイベント(QEvent::MouseButtonPress およびQEvent::MouseButtonRelease イベント)がイベントキューから処理されるにつれて、同期的に更新されます。
なお、これは呼び出し時点での入力デバイス上の実際のボタン状態を反映するものではなく、上記のイベントのいずれかで最後に報告されたマウスボタンの状態を反映している可能性があることに注意してください。マウスボタンが押されていない場合は、Qt::NoButton が返されます。
keyboardModifiers()も参照してください 。
template <typename QNativeInterface> QNativeInterface *QGuiApplication::nativeInterface() const
アプリケーションに対して、指定された型のネイティブインターフェースを返します。
この関数は、QNativeInterface 名前空間で定義されているQGuiApplication のプラットフォーム固有の機能へのアクセスを提供します:
Waylandアプリケーションへのネイティブインターフェース | |
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倍(「小さな UI」)としてレンダリングするか、2倍(「大きな UI」)としてレンダリングするかを検討してください。すべてのオプションの完全なリストについては、Qt::HighDpiScaleFactorRoundingPolicy 列挙型を参照してください。
この関数は、アプリケーションオブジェクトを作成する前に呼び出す必要があります。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()を呼び出してQtのイベントをクリアし、次にプラットフォームプラグインがウィンドウシステムと同期を行い、最後にQCoreApplication::processEvents()を再度呼び出してQtのイベントを配信します。
この関数は処理に時間がかかるため、使用は推奨されません。
[static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
指定された位置pos にある最上位ウィンドウが存在する場合、それを返します。
[static] QWindowList QGuiApplication::topLevelWindows()
アプリケーション内の最上位ウィンドウのリストを返します。
allWindows()も参照してください 。
マクロのドキュメント
qGuiApp
一意のアプリケーション・オブジェクトを指すグローバル・ポインタ。そのオブジェクトがQGuiApplication である場合にのみ有効です。
QCoreApplication::instance() およびqAppも参照してください 。
© 2026 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.