QApplication Class
QApplication クラスは、GUI アプリケーションの制御フローと主な設定を管理します。詳細...
| ヘッダー: | #include <QApplication> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QGuiApplication |
プロパティ
|
|
パブリック関数
| QApplication(int &argc, char **argv) | |
| virtual | ~QApplication() |
| bool | autoSipEnabled() const |
| QString | styleSheet() const |
再実装されたパブリック関数
| virtual bool | notify(QObject *receiver, QEvent *e) override |
パブリックスロット
| void | aboutQt() |
| void | closeAllWindows() |
| void | setAutoSipEnabled(const bool enabled) |
| void | setStyleSheet(const QString &sheet) |
シグナル
| void | focusChanged(QWidget *old, QWidget *now) |
静的パブリックメンバー
| QWidget * | activeModalWidget() |
| QWidget * | activePopupWidget() |
| QWidget * | activeWindow() |
| void | alert(QWidget *widget, int msec = 0) |
| QWidgetList | allWidgets() |
| void | beep() |
| int | cursorFlashTime() |
| int | doubleClickInterval() |
| int | exec() |
| QWidget * | focusWidget() |
| QFont | font() |
| QFont | font(const QWidget *widget) |
| QFont | font(const char *className) |
| bool | isEffectEnabled(Qt::UIEffect effect) |
| int | keyboardInputInterval() |
| QPalette | palette(const QWidget *widget) |
| QPalette | palette(const char *className) |
| void | setCursorFlashTime(int) |
| void | setDoubleClickInterval(int) |
| void | setEffectEnabled(Qt::UIEffect effect, bool enable = true) |
| void | setFont(const QFont &font, const char *className = nullptr) |
| void | setKeyboardInputInterval(int) |
| void | setPalette(const QPalette &palette, const char *className = nullptr) |
| void | setStartDragDistance(int l) |
| void | setStartDragTime(int ms) |
| void | setStyle(QStyle *style) |
| QStyle * | setStyle(const QString &style) |
| void | setWheelScrollLines(int) |
| int | startDragDistance() |
| int | startDragTime() |
| QStyle * | style() |
| QWidget * | topLevelAt(const QPoint &point) |
| QWidget * | topLevelAt(int x, int y) |
| QWidgetList | topLevelWidgets() |
| int | wheelScrollLines() |
| QWidget * | widgetAt(const QPoint &point) |
| QWidget * | widgetAt(int x, int y) |
再実装されたプロテクト関数
| virtual bool | event(QEvent *e) override |
マクロ
詳細な説明
QApplication は、QWidget ベースのアプリケーションに必要な機能の一部を用いて、QGuiApplication を特化させています。ウィジェット固有の初期化および最終処理を処理します。
Qt を使用する GUI アプリケーションでは、その時点でアプリケーションが 0、1、2、あるいはそれ以上のウィンドウを持っているかどうかに関係なく、QApplication オブジェクトは正確に1 つだけ存在します。QWidget ベースではない Qt アプリケーションの場合は、QtWidgets ライブラリに依存しないQGuiApplication を代わりに使用してください。
一部のGUIアプリケーションは、特別なバッチモード、すなわち手動操作なしにタスクを実行するためのコマンドライン引数を提供しています。このような非GUIモードでは、グラフィカルユーザーインターフェースに必要なリソースを不必要に初期化しないよう、単純なQCoreApplication をインスタンス化すれば十分な場合が多くあります。以下の例は、適切なタイプのアプリケーションインスタンスを動的に作成する方法を示しています:
QCoreApplication* createApplication(int &argc, char *argv[])
{
for (int i = 1; i < argc; ++i) {
if (!qstrcmp(argv[i], "-no-gui"))
return new QCoreApplication(argc, argv);
}
return new QApplication(argc, argv);
}
int main(int argc, char* argv[])
{
QScopedPointer<QCoreApplication> app(createApplication(argc, argv));
if (qobject_cast<QApplication *>(app.data())) {
// start GUI version...
} else {
// start non-GUI version...
}
return app->exec();
}QApplicationオブジェクトには、グローバルなqApp ポインタと同等のポインタを返すinstance()関数を通じてアクセスできます。
QApplicationの主な役割は以下の通りです。
- palette()、font()、doubleClickInterval() などのユーザーのデスクトップ設定を用いてアプリケーションを初期化します。ユーザーがコントロールパネルなどを通じてデスクトップ設定をグローバルに変更した場合に備え、これらのプロパティを追跡します。
- イベント処理を行います。つまり、基盤となるウィンドウシステムからイベントを受信し、それらを関連するウィジェットにディスパッチします。sendEvent() およびpostEvent() を使用することで、独自のイベントをウィジェットに送信することができます。
- 一般的なコマンドライン引数を解析し、それに応じて内部状態を設定します。詳細については、以下の `constructor documentation ` を参照してください。
- アプリケーションのルック・アンド・フィールを定義し、これは `QStyle ` オブジェクトにカプセル化されています。これは `setStyle()` を使用して実行時に変更できます。
- translate() を通じて、ユーザーに表示される文字列のローカライズ機能を提供します。
- clipboard() のような「魔法のような」オブジェクトも提供します。
- アプリケーションのウィンドウに関する情報を把握しています。widgetAt() を使用して特定の位置にあるウィジェットを問い合わせたり、topLevelWidgets() やcloseAllWindows() を使用してウィジェットのリストを取得したりすることができます。
- また、アプリケーションのマウスカーソルの処理も管理しています。詳細はsetOverrideCursor() を参照してください。
QApplicationオブジェクトは多くの初期化処理を行うため、ユーザーインターフェースに関連する他のオブジェクトを作成する前に作成する必要があります。また、QApplicationは一般的なコマンドライン引数の処理も行います。したがって、アプリケーション内でargv の解釈や変更を行う前に、QApplicationを作成しておくのが一般的です。
| 関数のグループ | |
|---|---|
| システム設定 | desktopSettingsAware(),setDesktopSettingsAware(),cursorFlashTime(),setCursorFlashTime(),doubleClickInterval(),setDoubleClickInterval(),setKeyboardInputInterval(),wheelScrollLines(),setWheelScrollLines(),palette(),setPalette(),font(),setFont(). |
| イベント処理 | exec(),processEvents(),exit(),quit().sendEvent(),postEvent(),sendPostedEvents(),removePostedEvents(),notify(). |
| GUIのスタイル | style(),setStyle(). |
| テキスト処理 | installTranslator(),removeTranslator()translate(). |
| ウィジェット | allWidgets(),topLevelWidgets(),activePopupWidget(),activeModalWidget(),clipboard(),focusWidget(),activeWindow(),widgetAt(). |
| 高度なカーソル操作 | overrideCursor(),setOverrideCursor(),restoreOverrideCursor(). |
| その他 | closeAllWindows(),startingUp(),closingDown(). |
QCoreApplication 、QAbstractEventDispatcher 、QEventLoop 、およびQSettingsも参照してください 。
プロパティのドキュメント
autoSipEnabled : bool
SIP(ソフトウェア入力パネル)の自動表示を切り替えます
このプロパティを `true ` に設定すると、キーボード入力を受け付けるウィジェットに入力する際に、SIP が自動的に表示されます。このプロパティは、`WA_InputMethodEnabled` 属性が設定されているウィジェットにのみ影響し、通常はキーがほとんどない、あるいはまったくないデバイスで仮想キーボードを起動するために使用されます。
このプロパティは、ソフトウェア入力パネルを使用するプラットフォームでのみ有効です。
デフォルト値はプラットフォームによって異なります。
アクセス関数:
| bool | autoSipEnabled() const |
| void | setAutoSipEnabled(const bool enabled) |
cursorFlashTime : int
このプロパティは、テキストカーソルの点滅(フラッシュ)時間をミリ秒単位で保持します
点滅時間は、キャレットの表示、反転、および元の状態への復元にかかる時間です。通常、テキストカーソルはカーソルの点滅時間の半分だけ表示され、その後同じ時間だけ非表示になりますが、これは状況によって異なる場合があります。
X11 でのデフォルト値は 1000 ミリ秒です。Windows では、Control Panel の値が使用され、このプロパティを設定すると、すべてのアプリケーションのカーソル点滅時間が設定されます。
ユーザーがグローバルなデスクトップ設定を変更すると、この値はいつでも変更される可能性があるため、ウィジェットではこの値をキャッシュしないことを推奨します。
注:この プロパティは、たとえばカーソルの点滅が無効になっている場合など、負の値を保持することがあります。
アクセス関数:
| int | cursorFlashTime() |
| void | setCursorFlashTime(int) |
doubleClickInterval : int
このプロパティは、ダブルクリックと連続した2回のマウスクリックを区別するための時間制限(ミリ秒単位)を保持します
X11でのデフォルト値は400ミリ秒です。WindowsおよびMac OSでは、オペレーティングシステムの値が使用されます。
アクセス関数:
| int | doubleClickInterval() |
| void | setDoubleClickInterval(int) |
keyboardInputInterval : int
このプロパティは、1回のキー押下と2回連続のキー押下を区別するための時間制限(ミリ秒単位)を保持します
X11 でのデフォルト値は 400 ミリ秒です。Windows および Mac OS では、オペレーティングシステムの値が使用されます。
アクセス関数:
| int | keyboardInputInterval() |
| void | setKeyboardInputInterval(int) |
startDragDistance : int
このプロパティは、ドラッグ&ドロップ操作を開始するために必要な最小距離を保持します。
アプリケーションでドラッグ&ドロップをサポートしており、ユーザーがボタンを押したままカーソルを一定距離移動させた後にドラッグ&ドロップ操作を開始したい場合は、このプロパティの値を必要な最小距離として設定する必要があります。
たとえば、クリック時のマウス位置が `startPos ` に格納されており、現在の位置(マウス移動イベントなど)が `currentPos` である場合、次のようなコードでドラッグを開始すべきかどうかを判断できます。
if ((startPos - currentPos).manhattanLength() >=
QApplication::startDragDistance())
startTheDrag();Qtは内部的にこの値を使用しています(例:QFileDialog )。
デフォルト値(プラットフォームが別のデフォルト値を提供していない場合)は 10 ピクセルです。
アクセス関数:
| int | startDragDistance() |
| void | setStartDragDistance(int l) |
startDragTime()、QPoint::manhattanLength()、および「ドラッグ&ドロップ」も参照してください 。
startDragTime : int
このプロパティは、ドラッグ&ドロップ操作が開始されるまでにマウスボタンを押し続けなければならない時間をミリ秒単位で保持します
アプリケーションでドラッグ&ドロップをサポートしており、ユーザーがマウスボタンを一定時間押した後にドラッグ&ドロップ操作を開始したい場合は、このプロパティの値を遅延時間として使用してください。
Qt も、QTextEdit やQLineEdit など、ドラッグを開始する際に、この遅延時間を内部で使用しています。
デフォルト値は 500 ミリ秒です。
アクセス関数:
| int | startDragTime() |
| void | setStartDragTime(int ms) |
startDragDistance() および「ドラッグ&ドロップ」も参照してください 。
styleSheet : QString
このプロパティには、アプリケーションのスタイルシートが格納されます
アプリケーションのスタイルシートは、個々のウィジェットに設定されたスタイルシートに加え、アプリケーション内のすべてのウィジェットに適用されます。カスケードのルールについては、「Qt スタイルシート」を参照してください。
このプロパティを設定すると、アプリケーションのスタイルが、現在のstyle をラップするスタイルシートのスタイルに置き換えられ、その後行われる変更のたびに、アプリケーション内のすべてのウィジェットが再描画されます。スタイルシートは、最初のウィンドウが表示される前に一度だけ設定し、実行時にテーマを切り替えるために使用しないでください。スタイルシートをいつ使用すべきかについては、「Qt Widgets のスタイリング手法」を参照してください。
値がfile:/// のURLである場合、Qtは指定されたファイルからスタイルシートを読み込み、そのファイル内の画像参照などの相対URLを、そのファイルのディレクトリを基準に解決します。file:/// のURLを受け付けるのはアプリケーションスタイルシートのみであり、QWidget::styleSheet では受け付けません。
デフォルトでは、アプリケーションの実行時にユーザーがコマンドラインで-stylesheet オプションを指定しない限り、このプロパティは空の文字列になります。このオプションを指定すると、このプロパティは指定されたファイルのfile:/// URLに設定されます。
アクセス関数:
| QString | styleSheet() const |
| void | setStyleSheet(const QString &sheet) |
「 QWidget::styleSheet」 、「setStyle()」、Qt スタイルシート、および「Qt Widgets のスタイル設定手法」も参照してください 。
wheelScrollLines : int
このプロパティは、マウスホイールを回転させた際にウィジェットをスクロールする行数を保持します。
この値がウィジェットの表示行数を超える場合、ウィジェットはスクロール操作を 1ページ分 の上/下スクロール として解釈する必要があります。ウィジェットが `item view class` である場合、1 行分のスクロールの結果は、ウィジェットの `scroll mode` の設定によって異なります。1行分のスクロールとは、`scroll one item ` または `scroll one pixel` を意味する場合があります。
デフォルトでは、このプロパティの値は 3 です。
アクセス関数:
| int | wheelScrollLines() |
| void | setWheelScrollLines(int) |
関連項目: QStyleHints::wheelScrollLines()。
メンバ関数のドキュメント
QApplication::QApplication(int &argc, char **argv)
ウィンドウシステムを初期化し、argv 内の `argc ` コマンドライン引数を使用してアプリケーションオブジェクトを構築します。
警告: `argc ` および `argv ` が参照するデータは 、QApplication オブジェクトの存続期間全体を通じて有効なままである必要があります。また、`argc ` は 0 より大きく、`argv ` には少なくとも 1 つの有効な文字列が含まれている必要があります。
グローバルポインタqApp は、このアプリケーションオブジェクトを指します。アプリケーションオブジェクトは1つだけ作成する必要があります。
このアプリケーションオブジェクトは、paint devices (ウィジェット、ピクマップ、ビットマップなどを含む)のいかなるものよりも先に構築されなければなりません。
注: argc およびargv は、Qt が認識するコマンドライン引数が削除される際に変更される可能性があります。
すべての Qt プログラムは、以下のコマンドラインオプションを自動的にサポートしています:
- -style=style: アプリケーションのGUIスタイルを設定します。使用可能な値はシステム構成によって異なります。追加のスタイルを含めてQtをコンパイルした場合、または追加のスタイルをプラグインとして使用している場合は、
-styleのコマンドラインオプションでそれらを利用できます。また、QT_STYLE_OVERRIDE環境変数を設定することで、すべてのQtアプリケーションのスタイルを設定することもできます。 - -stylestyle:上記と同じ機能です。
- -stylesheet=stylesheet: アプリケーションのスタイルシートを設定します。値は、スタイルシートを含むファイルへのパスでなければなりません。
注:スタイルシートファイル内の相対URLは 、そのスタイルシートファイルのパスを基準としています。
- -stylesheetstylesheet は、上記と同じです。
- -widgetcount: 終了時に、破棄されずに残っているウィジェットの数と、同時に存在した最大ウィジェット数に関するデバッグメッセージを出力します。
- -reverse: アプリケーションのレイアウト方向をQt::RightToLeft
- -qmljsdebugger=:指定したポートで QML/JS デバッガーを起動します。値は port:1234[,block] の形式で指定する必要があります。block はオプションであり、指定すると、デバッガーが接続するまでアプリケーションが待機します。
QCoreApplication::arguments()も参照してください 。
[virtual noexcept] QApplication::~QApplication()
このアプリケーションによって割り当てられたウィンドウシステムリソースをすべて解放します。グローバル変数qApp の値をnullptr に設定します。
[static slot] void QApplication::aboutQt()
Qt に関する簡単なメッセージボックスを表示します。メッセージには、アプリケーションで使用されている Qt のバージョン番号が含まれます。
これは、「Menus」の例に示されているように、アプリケーションの「Help 」メニューに組み込むのに役立ちます。
この関数は、QMessageBox::aboutQt() の便宜上のスロットです。
[static] QWidget *QApplication::activeModalWidget()
アクティブなモーダルウィジェットを返します。
モーダルウィジェットとは、QDialog のサブクラスであり、コンストラクタの modal パラメータを true として指定した特別なトップレベルウィジェットです。ユーザーがプログラムの他の部分に進むには、モーダルウィジェットを閉じる必要があります。
モーダルウィジェットはスタックとして管理されます。この関数は、スタックの最上部に位置するアクティブなモーダルウィジェットを返します。
activePopupWidget() およびtopLevelWidgets()も参照してください 。
[static] QWidget *QApplication::activePopupWidget()
アクティブなポップアップウィジェットを返します。
ポップアップウィジェットとは、Qt::WType_Popup ウィジェットフラグが設定された特別なトップレベルウィジェットです(例:QMenu ウィジェット)。アプリケーションがポップアップウィジェットを開くと、すべてのイベントがポップアップに送信されます。ポップアップウィジェットが閉じられるまでは、通常のウィジェットやモーダルウィジェットにアクセスすることはできません。
ポップアップウィジェットが表示されている間は、他のポップアップウィジェットのみを開くことができます。ポップアップウィジェットはスタックとして整理されます。この関数は、スタックの最上層にあるアクティブなポップアップウィジェットを返します。
activeModalWidget() およびtopLevelWidgets()も参照してください 。
[static] QWidget *QApplication::activeWindow()
キーボードの入力フォーカスを有するアプリケーションの最上位ウィンドウを返します。アプリケーションウィンドウのいずれもフォーカスを有していない場合は、nullptr を返します。focusWidget()が存在しない場合でも、activeWindow()が存在する場合があります。例えば、そのウィンドウ内のウィジェットのいずれもキーイベントを受け付けない場合などです。
QWidget::setFocus()、QWidget::hasFocus()、およびfocusWidget()も参照してください 。
[static] void QApplication::alert(QWidget *widget, int msec = 0)
ウィンドウがアクティブなウィンドウでない場合、widget に対してアラートを表示します。アラートはmsec ミリ秒間表示されます。msec が 0(デフォルト)の場合、ウィンドウが再びアクティブになるまでアラートは無限に表示され続けます。
現在、この関数は Qt for Embedded Linux では動作しません。
macOSでは、これは主にアプリケーションレベルで動作し、ドック上のアプリケーションアイコンがバウンドするようになります。
Windowsでは、これによりウィンドウのタスクバー上のエントリが一時的に点滅します。msec が0の場合、点滅は停止し、タスクバー上のエントリは別の色(現在はオレンジ色)に変わります。
X11では、これによりウィンドウが「注意を要する」状態としてマークされます。この動作を有効にするには、ウィンドウが非表示になってはいけません(つまり、hide() が呼び出されておらず、何らかの形で表示されている必要があります)。
[static] QWidgetList QApplication::allWidgets()
アプリケーション内のすべてのウィジェットのリストを返します。
ウィジェットが存在しない場合、リストは空(QList::isEmpty())になります。
注:一部の ウィジェットは非表示になっている場合があります。
例:
void updateAllWidgets()
{
const QWidgetList allWidgets = QApplication::allWidgets();
for (QWidget *widget : allWidgets)
widget->update();
}関連項目: topLevelWidgets() およびQWidget::isVisible()。
[static] void QApplication::beep()
デフォルトの音量とサウンドを使用してベルを鳴らします。この機能は、Qt for Embedded Linux では利用できません。
[static slot] void QApplication::closeAllWindows()
すべての最上位ウィンドウを閉じます。
この関数は、トップレベルウィンドウが多数あるアプリケーションで特に有用です。
ウィンドウは、1つのウィンドウが閉じるイベントを受け付けなくなるまで、ランダムな順序で閉じられます。quitOnLastWindowClosed がfalseに設定されていない限り、最後のウィンドウが正常に閉じられた時点でアプリケーションは終了します。例えばメニューなどからアプリケーションの終了をトリガーするには、この関数の代わりにQCoreApplication::quit()を使用してください。
関連項目: quitOnLastWindowClosed 、lastWindowClosed()、QWidget::close()、QWidget::closeEvent()、QCoreApplication::quit()、topLevelWidgets()、およびQWidget::isWindow()。
[override virtual protected] bool QApplication::event(QEvent *e)
QGuiApplication::event(QEvent *e) を再実装します。
[static] int QApplication::exec()
メインイベントループに入り、exit() が呼び出されるまで待機し、その後、exit() に設定された値を返します(quit() を通じてexit() が呼び出された場合、この値は 0 になります)。
イベント処理を開始するには、この関数を呼び出す必要があります。メインイベントループはウィンドウシステムからイベントを受け取り、それらをアプリケーションウィジェットにディスパッチします。
一般的に、exec() を呼び出すまではユーザーとの対話を行うことはできません。例外として、QMessageBox のようなモーダルウィジェットは、exec() を呼び出す前に使用できます。これは、モーダルウィジェットが exec() を呼び出してローカルイベントループを開始するためです。
アプリケーションにアイドル処理(つまり、保留中のイベントがないときに特別な関数を実行する処理)を行わせるには、タイムアウトを 0ns に設定したQChronoTimer を使用します。より高度なアイドル処理は、processEvents() を使用して実現できます。
アプリケーションの `main() ` 関数内にクリーンアップコードを記述するのではなく、`aboutToQuit()` シグナルにクリーンアップコードを接続することをお勧めします。これは、一部のプラットフォームでは `QApplication::exec()` の呼び出しが戻らない場合があるためです。 たとえば、Windowsプラットフォームでは、ユーザーがログオフすると、Qtがすべてのトップレベルウィンドウを閉じた後にシステムがプロセスを終了します。したがって、QApplication::exec()の呼び出し後、main() 関数の末尾にあるコードが実行される前に、アプリケーションがイベントループを終了する時間があるとは保証されません。
quitOnLastWindowClosed 、QCoreApplication::quit()、QCoreApplication::exit()、QCoreApplication::processEvents()、およびQCoreApplication::exec()も参照してください 。
[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)
このシグナルは、キーボードフォーカスを保持しているウィジェットが `old ` から `now` へ変更されたとき、つまり、ユーザーが Tab キーを押したり、ウィジェット内をクリックしたり、アクティブなウィンドウを変更したりした際に発生します。old とnow の両方が `nullptr` になる可能性があります。
このシグナルは、QFocusEvent を通じて両方のウィジェットに変更が通知された後に発火します。
QWidget::setFocus()、QWidget::clearFocus()、およびQt::FocusReasonも参照してください 。
[static] QWidget *QApplication::focusWidget()
キーボードの入力フォーカスが当てられているアプリケーションのウィジェットを返します。このアプリケーション内のどのウィジェットにもフォーカスが当てられていない場合は、nullptr を返します。
関連項目: QWidget::setFocus()、QWidget::hasFocus()、activeWindow()、およびfocusChanged()。
[static] QFont QApplication::font()
デフォルトのアプリケーションフォントを返します。
setFont()、fontMetrics()、およびQWidget::font()も参照してください 。
[static] QFont QApplication::font(const QWidget *widget)
widget のデフォルトフォントを返します。widget のクラスにデフォルトフォントが登録されていない場合、最も近い登録済みスーパークラスのデフォルトフォントを返します。
これはオーバーロードされた関数です。
fontMetrics()、setFont()、およびQWidget::setFont()も参照してください 。
[static] QFont QApplication::font(const char *className)
指定されたclassName のウィジェットに使用されるフォントを返します。
これはオーバーロードされた関数です。
setFont() およびQWidget::font()も参照してください 。
[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)
effect が有効な場合はtrue を返し、そうでない場合はfalse を返します。
デフォルトでは、Qt はデスクトップ設定を使用しようとします。これを防ぐには、setDesktopSettingsAware(false) を呼び出してください。
注: 色深度が 16 ビット未満の画面では、すべての エフェクトが無効になります。
setEffectEnabled() およびQt::UIEffectも参照してください 。
[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)
QGuiApplication::notify (QObject *object, QEvent *event)を再実装します。
[static] QPalette QApplication::palette(const QWidget *widget)
widget が渡された場合、ウィジェットのクラスに対するデフォルトのパレットが返されます。これはアプリケーションのパレットと一致する場合もあれば、一致しない場合もあります。ほとんどの場合、特定の種類のウィジェットに特別なパレットは存在しませんが、顕著な例外として、Windows のポップアップメニューが挙げられます。これは、ユーザーがディスプレイ設定でメニュー用の特別な背景色を定義している場合です。
setPalette() およびQWidget::palette()も参照してください 。
[static] QPalette QApplication::palette(const char *className)
指定されたclassName のウィジェット用のパレットを返します。
これはオーバーロードされた関数です。
setPalette() およびQWidget::palette()も参照してください 。
[static] void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)
enable がtrueの場合、UIエフェクト「effect 」を有効にします。そうでない場合、このエフェクトは使用されません。
注: 16ビット未満の色深度で動作している画面では、すべての エフェクトが無効になります。
関連項目: ` isEffectEnabled()`、`Qt::UIEffect`、および `setDesktopSettingsAware()`。
[static] void QApplication::setFont(const QFont &font, const char *className = nullptr)
アプリケーションのデフォルトフォントをfont に変更します。className が渡された場合、この変更はclassName を継承するクラスにのみ適用されます(QObject::inherits()によって報告される通り)。
アプリケーションの起動時、デフォルトのフォントはウィンドウシステムによって異なります。これは、ウィンドウシステムのバージョンやロケールによって異なる場合があります。この関数を使用すると、デフォルトのフォントを上書きできますが、例えば一部のロケールでは特殊文字をサポートするために特大のフォントが必要となる場合があるため、上書きは推奨されません。
警告: この関数をQt スタイルシートと併用しないでください 。アプリケーションのフォントは、「font」スタイルシートプロパティを使用してカスタマイズできます。すべての QPushButton に太字のフォントを設定するには、アプリケーションのstyleSheet() を「QPushButton { font: bold }」のように設定してください。
関連項目: font()、fontMetrics()、およびQWidget::setFont()。
[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
アプリケーションパレットを「palette 」に変更します。
className が渡された場合、この変更はclassName を継承するウィジェットにのみ適用されます(QObject::inherits() によって報告される通り)。className を 0 のままにすると、変更はすべてのウィジェットに影響し、以前に設定されたクラス固有のパレットはすべて上書きされます。
パレットは、QStyle::polish() に指定された現在の GUI スタイルに従って変更される場合があります。
警告: この関数をQt スタイルシートと併用しないでください 。スタイルシートを使用する場合、ウィジェットのパレットは「color」、「background-color」、「selection-color」、「selection-background-color」、および「alternate-background-color」を使用してカスタマイズできます。
注: ネイティブのテーマエンジンを利用している場合など、一部の スタイルでは、すべての描画にパレットが使用されないことがあります。Windows Vista および macOS スタイルがこれに該当します。
関連項目: QWidget::setPalette()、palette()、およびQStyle::polish()。
[static] void QApplication::setStyle(QStyle *style)
アプリケーションのGUIスタイルをstyle に設定します。スタイルオブジェクトの所有権はQApplication に移管されるため、アプリケーションの終了時、または新しいスタイルが設定された際に、古いスタイルが依然としてアプリケーションオブジェクトの親である場合、QApplication によってスタイルオブジェクトが削除されます。
使用例:
QApplication::setStyle(QStyleFactory::create("Fusion"));アプリケーションのスタイルを切り替える際、カラーパレットは初期の色またはシステムのデフォルト値に戻されます。特定のスタイルでは、スタイルガイドに完全に準拠するためにカラーパレットを調整する必要があるため、これは必須です。
パレットが設定される前、つまり `QApplication` を作成する前にスタイルを設定すると、アプリケーションはパレットとして `QStyle::standardPalette()` を使用することになります。
style()、QStyle 、setPalette()、およびdesktopSettingsAware()も参照してください 。
[static] QStyle *QApplication::setStyle(const QString &style)
QStyleFactory から、style に対応するQStyle オブジェクトを要求します。
文字列はQStyleFactory::keys()のいずれかでなければならず、通常は「windows」、「windowsvista」、「fusion」、または「macos」のいずれかです。スタイル名は大文字小文字を区別しません。
未知の `style ` が渡された場合は `nullptr ` を返します。それ以外の場合は、返された `QStyle ` オブジェクトがアプリケーションの GUI スタイルとして設定されます。
警告: アプリケーションのスタイルが正しく設定されるようにするため 、可能であれば、QApplication のコンストラクタを呼び出す前にこの関数を呼び出すことをお勧めします。
これはオーバーロードされた関数です。
[static] QStyle *QApplication::style()
アプリケーションのスタイルオブジェクトを返します。
setStyle() およびQStyleも参照してください 。
[static] QWidget *QApplication::topLevelAt(const QPoint &point)
指定されたpoint にある最上位のウィジェットを返します。該当するウィジェットが存在しない場合は、nullptr を返します。
[static] QWidget *QApplication::topLevelAt(int x, int y)
点 (x,y) にある最上位のウィジェットを返します。該当するウィジェットが存在しない場合は 0 を返します。
これはオーバーロードされた関数です。
[static] QWidgetList QApplication::topLevelWidgets()
アプリケーション内の最上位ウィジェット(ウィンドウ)のリストを返します。
注:一部の トップレベルウィジェットは非表示になっている場合があります。たとえば、現在ツールチップが表示されていない場合は、ツールチップなどが該当します。
例:
void showAllHiddenTopLevelWidgets()
{
const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
for (QWidget *widget : topLevelWidgets) {
if (widget->isHidden())
widget->show();
}
}関連項目: ` allWidgets()`、`QWidget::isWindow()`、および `QWidget::isHidden()`。
[static] QWidget *QApplication::widgetAt(const QPoint &point)
グローバル画面座標point にあるウィジェットを返します。その位置にQtウィジェットが存在しない場合は、nullptr を返します。
この関数の実行には時間がかかる場合があります。
QCursor::pos()、QWidget::grabMouse()、およびQWidget::grabKeyboard()も参照してください 。
[static] QWidget *QApplication::widgetAt(int x, int y)
グローバルな画面位置(x 、y )にあるウィジェットを返します。その位置にQtウィジェットが存在しない場合は、nullptr を返します。
これはオーバーロードされた関数です。
マクロのドキュメント
qApp
一意のアプリケーションオブジェクトを指すグローバルポインタです。QCoreApplication::instance() と同等ですが、QApplication ポインタとしてキャストされているため、一意のアプリケーションオブジェクトがQApplication である場合にのみ有効です。
QCoreApplication::instance() およびqGuiAppも参照してください 。
© 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.