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() |
Qt::NavigationMode | navigationMode() |
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 | setNavigationMode(Qt::NavigationMode mode) |
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 に特化しています。QApplication は、ウィジェット固有の初期化と最終化を処理します。
Qt を使用する GUI アプリケーションでは、アプリケーションのウィンドウ数が 0、1、2、またはそれ以上であっても、QApplication オブジェクトは正確に1 つです。QtWidgets ライブラリに依存しないため、QWidget 以外の Qt アプリケーションでは、代わりに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 ()のようなユーザーのデスクトップ設定でアプリケーションを初期化します。QApplicationは、ユーザーがデスクトップをグローバルに変更した場合に備えて、これらのプロパティを追跡します。
- イベント処理を実行します。つまり、基礎となるウィンドウ・システムからイベントを受け取り、関連するウィジェットにディスパッチします。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(), fontMetrics(). |
イベント処理 | 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 などで内部的に使用します。
Qt はこの値を内部的に使用します。(プラットフォームが別のデフォルト値を提供していない場合)デフォルト値は 10 ピクセルです。
関数にアクセスしてください:
int | startDragDistance() |
void | setStartDragDistance(int l) |
startDragTime(),QPoint::manhattanLength(),Drag and Dropも参照してください 。
startDragTime : int
このプロパティは、ドラッグ&ドロップ操作を開始するまでにマウスボタンを押し続けなければならない時間をミリ秒単位で保持します。
アプリケーションでドラッグ&ドロップをサポートし、ユーザーがマウスボタンを一定時間押し続けた後にドラッグ&ドロップ操作を開始したい場合、このプロパティの値を遅延として使用する必要があります。
Qt は、QTextEdit やQLineEdit などで、ドラッグを開始するためにこの遅延を内部的に使用します。
デフォルト値は 500 ミリ秒です。
アクセス関数:
int | startDragTime() |
void | setStartDragTime(int ms) |
startDragDistance() およびDrag and Dropも参照してください 。
styleSheet : QString
このプロパティは、アプリケーション・スタイル・シートを保持します。
デフォルトでは、このプロパティは、ユーザがアプリケーションの実行時にコマンドラインで-stylesheet
オプションを指定しない限り、空の文字列を返します。
アクセス関数:
QString | styleSheet() const |
void | setStyleSheet(const QString &sheet) |
QWidget::setStyle() およびQt Style Sheetsも参照してください 。
wheelScrollLines : int
このプロパティは、マウスホイールが回転されたときに、ウィジェットをスクロールする行数を保持する。
値がウィジェットの可視行数を超える場合、ウィジェットはスクロール操作を1ページアップまたは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 プログラムは、以下のコマンドラインオプションを自動的にサポートしています:
- -アプリケーションの GUI スタイルを設定します。style=style "はアプリケーションの GUI スタイルを設定します。Qt をコンパイルする際にスタイルを追加したり、プラグインとしてスタイルを追加した場合は、
-style
のコマンドラインオプションを使用できます。QT_STYLE_OVERRIDE
環境変数を設定することで、すべての Qt アプリケーションのスタイルを設定することもできます。 - -stylestyleは、上記と同じです。
- -stylesheet=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 のサブクラスで、コンストラクタのモーダル パラメータを 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 がゼロ(デフォルト)の場合、アラートはウィンドウが再びアクティブになるまで無期限に表示されます。
現在のところ、この関数は Qt for Embedded Linux では何もしません。
macOS では、この機能はアプリケーションレベルで動作し、アプリケーションアイコンがドックで跳ね返ります。
Windows では、ウィンドウのタスクバーエントリが一時的に点滅します。msec がゼロの場合、点滅は止まり、タスクバーエントリーの色が変わります(現在はオレンジ)。
X11では、ウィンドウを "requires attention "と表示します。この機能を使うには、ウィンドウを非表示(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つのウィンドウがcloseイベントを受け付けなくなるまで、ランダムな順序で閉じられる。quitOnLastWindowClosed が false に設定されていない限り、最後のウィンドウが正常に閉じられるとアプリケーションは終了します。メニューなどからアプリケーションの終了をトリガーするには、この関数の代わりにQCoreApplication::quit() を使用してください。
quitOnLastWindowClosed 、lastWindowClosed()、QWidget::close()、QWidget::closeEvent()、lastWindowClosed()、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 に変わったとき、つまり、ユーザーがタブキーを押したか、ウィジェットをクリックしたか、アクティブ・ウィンドウを変更したときに発せられる。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も参照して ください。
[static]
Qt::NavigationMode QApplication::navigationMode()
Qt が使用しているフォーカスナビゲーションの種類を返します。
この機能は Qt for Embedded Linux でのみ利用可能です。
setNavigationMode()も参照してください 。
[override virtual]
bool QApplication::notify(QObject *receiver, QEvent *e)
再実装:QGuiApplication::notify(QObject *object, QEvent *event)。
[static]
QPalette QApplication::palette(const QWidget *widget)
widget が渡された場合、ウィジェットのクラスのデフォルトパレットが返されます。これはアプリケーションパレットである場合もあれば、そうでない場合もあります。ほとんどの場合、特定のタイプのウィジェットには特別なパレットはありませんが、1つの顕著な例外は、ユーザがディスプレイ設定でメニューの特別な背景色を定義している場合、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 Style Sheets と組み合わせて使用しないでください。アプリケーションのフォントは "font "スタイルシートプロパティを使ってカスタマイズすることができます。すべての QPushButton に太字フォントを設定するには、アプリケーションstyleSheet() を "QPushButton { font: bold }" と設定します。
font(),fontMetrics(),QWidget::setFont()も参照してください 。
[static]
void QApplication::setNavigationMode(Qt::NavigationMode mode)
Qt がmode で使用するフォーカスナビゲーションの種類を設定します。
この機能は Qt for Embedded Linux でのみ利用可能です。
navigationMode()も参照してください 。
[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() を使用するようになります。
警告 Qt スタイルシートは現在、QStyle のカスタムサブクラスには対応していません。将来のリリースで対応する予定です。
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も参照のこと 。
© 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.