Inherits Qt.
What's this?" help is part of an application's online help system that provides users with information about functionality, usage, background etc., in various levels of detail from short tool tips to full text browsing help windows.
QWhatsThis provides a single window with an explanatory text that pops up when the user asks "What's this?". The default way to do this is to focus the relevant widget and press Shift+F1. The help text appears immediately; it goes away as soon as the user does something else.
(Note that if there is an accelerator for Shift+F1, this mechanism will not work.)
To add "What's this?" text to a widget you simply call QWhatsThis::add() for the widget. For example, to assign text to a menu item, call QMenuData::setWhatsThis(); for a global accelerator key, call QAccel::setWhatsThis() and If you're using actions, use QAction::setWhatsThis().
The text can be either rich text or plain text. If you specify a rich text formatted string, it will be rendered using the default stylesheet. This makes it possible to embed images. See QStyleSheet::defaultSheet() for details.
const char * fileOpenText = "<p><img source=\"fileopen\"> "
"Click this button to open a <em>new file</em>. <br>"
"You can also select the <b>Open</b> command "
"from the <b>File</b> menu.</p>";
QMimeSourceFactory::defaultFactory()->setPixmap( "fileopen",
fileOpenAction->iconSet().pixmap() );
fileOpenAction->setWhatsThis( fileOpenText );
An alternative way to enter "What's this?" mode is to use the ready-made tool bar tool button from QWhatsThis::whatsThisButton(). By invoking this context help button (in the picture below the first one from the right) the user switches into "What's this?" mode. If they now click on a widget the appropriate help text is shown. The mode is left when help is given or when the user presses Esc.
<center>
</center>
If you are using QMainWindow you can also use the QMainWindow::whatsThis() slot to invoke the mode from a menu item.
For more control you can create a dedicated QWhatsThis object for a special widget. By subclassing and reimplementing QWhatsThis::text() it is possible to have different help texts, depending on the position of the mouse click. By reimplementing QWhatsThis::clicked() it is possible to have hyperlinks inside the help texts.
If you wish to control the "What's this?" behavior of a widget manually see QWidget::customWhatsThis().
The What's This object can be removed using QWhatsThis::remove(), although this is rarely necessary because it is automatically removed when the widget is destroyed.
See also QToolTip and Help System.
When the widget is queried by the user the text() function of this QWhatsThis will be called to provide the appropriate text, rather than using the text assigned by add().
The text is destroyed if the widget is later destroyed, so it need not be explicitly removed.
See also remove().
If the function returns TRUE (the default), the "What's this?" window is closed, otherwise it remains visible.
The default implementation ignores href and returns TRUE.
If widget w is not 0 and has its own dedicated QWhatsThis object, this object will receive clicked() messages when the user clicks on hyperlinks inside the help text.
See also QWhatsThis::clicked().
Qt will install a special cursor and take over mouse input until the user clicks somewhere. It then shows any help available and ends "What's this?" mode. Finally, Qt removes the special cursor and help window and then restores ordinary event processing, at which point the left mouse button is no longer pressed.
The user can also use the Esc key to leave "What's this?" mode.
See also inWhatsThisMode() and leaveWhatsThisMode().
See also enterWhatsThisMode() and leaveWhatsThisMode().
This function is used internally by widgets that support QWidget::customWhatsThis(); applications do not usually call it. An example of such a widget is QPopupMenu: menus still work normally in "What's this?" mode but also provide help texts for individual menu items.
If text is not QString::null, a "What's this?" help window is displayed at the global screen position pos. If widget w is not 0 and has its own dedicated QWhatsThis object, this object will receive clicked() messages when the user clicks on hyperlinks inside the help text.
See also inWhatsThisMode(), enterWhatsThisMode(), and QWhatsThis::clicked().
The default implementation returns QString::null.
If includeParents is TRUE, parent widgets are taken into consideration as well when looking for what's this help text.
(void) QWhatsThis::whatsThisButton( my_help_tool_bar );
Example: helpsystem/mainwindow.cpp.