このページでは

QWhatsThis Class

QWhatsThis クラスは、あらゆるウィジェットについて簡単な説明を提供します。つまり、「これは何?」という質問に答えるものです。詳細...

ヘッダー: #include <QWhatsThis>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets

静的パブリックメンバー

QAction *createAction(QObject *parent = nullptr)
void enterWhatsThisMode()
void hideText()
bool inWhatsThisMode()
void leaveWhatsThisMode()
void showText(const QPoint &pos, const QString &text, QWidget *w = nullptr)

詳細な説明

「What's This?」ヘルプは、アプリケーションのオンラインヘルプシステムの一部であり、特定のウィジェットの機能や使用方法に関する情報をユーザーに提供します。「What's This?」のヘルプテキストは、通常、tooltips のヘルプよりも長くて詳細ですが、個別のヘルプウィンドウで提供される情報よりは一般的に少ない情報量となっています。

QWhatsThisは、ユーザーが「What's This?」と尋ねた際にポップアップ表示される説明テキストを含む単一のウィンドウを提供します。 ユーザーが質問を行う標準的な方法は、該当するウィジェットにフォーカスを合わせて Shift+F1 を押すことです。ヘルプテキストは即座に表示され、ユーザーが他の操作を行うとすぐに消えます。(Shift+F1 にショートカットが割り当てられている場合、この仕組みは機能しないことに注意してください。) 一部のダイアログには「?」ボタンがあり、ユーザーがこれをクリックすると「What's This?」モードに入ります。その後、関連するウィジェットをクリックして「What's This?」ウィンドウをポップアップ表示させます。また、メニューオプションやツールバーボタンを用意して「What's This?」モードに切り替えることも可能です。

ウィジェットやアクションに「What's This?」テキストを追加するには、QWidget::setWhatsThis() またはQAction::setWhatsThis() を呼び出すだけです。

テキストはリッチテキストでもプレーンテキストでも構いません。リッチテキスト形式の文字列を指定した場合、デフォルトのスタイルシートを使用してレンダリングされるため、表示されるテキストに画像を埋め込むことが可能です。処理を可能な限り高速化するため、デフォルトのスタイルシートでは、テキストをプレーンテキストとしてレンダリングできるかどうかを判定する簡単な方法を採用しています。詳細については、Qt::mightBeRichText() を参照してください。

newAct = new QAction(tr("&New"), this);
newAct->setShortcut(tr("Ctrl+N"));
newAct->setStatusTip(tr("Create a new file"));
newAct->setWhatsThis(tr("Click this option to create a new file."));

「What's This?」モードに入る別の方法として、createAction() を呼び出し、返されたQAction をメニューまたはツールバーに追加する方法があります。このコンテキストヘルプアクション(下の図では、矢印と疑問符のアイコンが付いたボタン)を実行することで、ユーザーは「What's This?」モードに切り替わります。 ユーザーがウィジェットをクリックすると、該当するヘルプテキストが表示されます。ヘルプの表示が完了するか、ユーザーが Esc キーを押すと、このモードは終了します。

「新規ファイル」ボタンの「これは何?」モード

enterWhatsThisMode() を使用してプログラムから「What's This?」モードに入ることもでき、inWhatsThisMode() でモードを確認し、leaveWhatsThisMode() で通常モードに戻ることができます。

ウィジェットの「What's This?」の動作を手動で制御したい場合は、Qt::WA_CustomWhatsThis を参照してください。

また、タイプ `QEvent::WhatsThis` の `QHelpEvent ` を使用することで、ウィジェットの領域ごとに異なるヘルプテキストを表示することも可能です。ウィジェットの `QWidget::event()` 関数内でヘルプイベントをインターセプトし、QHelpEvent::pos()` で指定された位置に表示したいテキストを引数として `QWhatsThis::showText()` を呼び出してください。 テキストがリッチテキストであり、ユーザーがリンクをクリックした場合、ウィジェットはリンクの参照先をQWhatsThisClickedEvent::href()として含むQWhatsThisClickedEvent も受け取ります。QWhatsThisClickedEvent が処理された場合(つまり、QWidget::event()がtrueを返す場合)、ヘルプウィンドウは表示されたままになります。QWhatsThis::hideText()を呼び出して、明示的に非表示にしてください。

QToolTipも参照してください 。

メンバ関数のドキュメント

[static] QAction *QWhatsThis::createAction(QObject *parent = nullptr)

指定されたparent を使用して、「What's This?」コンテキストヘルプを呼び出すために使用される、既成のQAction を返します。

返されるQAction は、ユーザーが「What's This?」モードに入るための便利な手段を提供します。

[static] void QWhatsThis::enterWhatsThisMode()

この関数は、ユーザーインターフェースを「What's This?」モードに切り替えます。ユーザーインターフェースは、ユーザーによる操作(クリックやEscキーの押下など)によって、あるいはleaveWhatsThisMode()を呼び出すことでプログラム的に、通常モードに戻すことができます。

「What's This?」モードに入ると、Qt::EnterWhatsThisMode 型の `QEvent ` がすべてのトップレベルウィジェットに送信されます。

inWhatsThisMode() およびleaveWhatsThisMode()も参照してください 。

[static] void QWhatsThis::hideText()

「これは何?」ウィンドウが表示されている場合、これを閉じます。

showText()も参照してください 。

[static] bool QWhatsThis::inWhatsThisMode()

ユーザーインターフェースが「What's This?」モードの場合は `true ` を返し、それ以外の場合は `false` を返します。

enterWhatsThisMode()も参照してください 。

[static] void QWhatsThis::leaveWhatsThisMode()

ユーザーインターフェースが「What's This?」モードの場合、この関数は通常モードに戻します。それ以外の場合は何も行いません。

「What's This?」モードを終了する際、Qt::LeaveWhatsThisMode 型のQEvent がすべてのトップレベルウィジェットに送信されます。

enterWhatsThisMode() およびinWhatsThisMode()も参照してください 。

[static] void QWhatsThis::showText(const QPoint &pos, const QString &text, QWidget *w = nullptr)

グローバル位置pos に、「text 」を「What's This?」ウィンドウとして表示します。オプションのウィジェット引数w は、マルチヘッドシステムにおいて適切な画面を特定するために使用されます。

hideText()も参照してください 。

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