Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QWhatsThis Class Reference

The QWhatsThis class provides a simple description of any widget, i.e. answering the question "What's this?". More...

`#include <qwhatsthis.h>`

Inherits Qt.

List of all member functions.

## Public Members

- QWhatsThis ( QWidget * widget )
- virtual ~QWhatsThis ()
- virtual QString text ( const QPoint & )
- virtual bool clicked ( const QString & href )

## Static Public Members

- void add ( QWidget * widget, const QString & text )
- void remove ( QWidget * widget )
- QString textFor ( QWidget * w, const QPoint & pos = QPoint ( ), bool includeParents = FALSE )
- QToolButton * whatsThisButton ( QWidget * parent )
- void enterWhatsThisMode ()
- bool inWhatsThisMode ()
- void leaveWhatsThisMode ( const QString & text = QString::null, const QPoint & pos = QCursor::pos ( ), QWidget * w = 0 )
- void display ( const QString & text, const QPoint & pos = QCursor::pos ( ), QWidget * w = 0 )

## Detailed Description

The QWhatsThis class provides a simple description of any widget, i.e. answering the question "What's this?".

"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 which 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 );

(For further explanation of the above code refer to the Simple Application Walkthrough featuring QAction.)

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.

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.

## Member Function Documentation

### QWhatsThis::QWhatsThis ( QWidget * widget )

Constructs a dynamic "What's this?" object for widget. The object is deleted when the passed widget is destroyed.

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().

### QWhatsThis::~QWhatsThis ()`[virtual]`

Destroys the object and frees any allocated resources.

### void QWhatsThis::add ( QWidget * widget, const QString & text )`[static]`

Adds text as "What's this" help for widget. If the text is rich text formatted (i.e. it contains markup) it will be rendered with the default stylesheet QStyleSheet::defaultSheet().

The text is destroyed if the widget is later destroyed, so it need not be explicitly removed.

See also remove().

Examples: application/application.cpp and mdi/application.cpp.

### bool QWhatsThis::clicked ( const QString & href )`[virtual]`

This virtual function is called when the user clicks inside the "What's this?" window. href is the link the user clicked on, or QString::null if there was no link.

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.

### void QWhatsThis::display ( const QString & text, const QPoint & pos = QCursor::pos ( ), QWidget * w = 0 )`[static]`

Display text in a help window at the global screen position pos.

If widget w is not null 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().

### void QWhatsThis::enterWhatsThisMode ()`[static]`

Enters "What's this?" mode and returns immediately.

Qt will install a special cursor and take over mouse input until the user clicks somewhere. It then shows any help available and switches out of "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().

### bool QWhatsThis::inWhatsThisMode ()`[static]`

Returns TRUE if the application is in "What's this?" mode; otherwise returns FALSE.

See also enterWhatsThisMode() and leaveWhatsThisMode().

### void QWhatsThis::leaveWhatsThisMode ( const QString & text = QString::null, const QPoint & pos = QCursor::pos ( ), QWidget * w = 0 )`[static]`

Leaves "What's this?" question mode.

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 a null string, a "What's this?" help window is displayed at the global screen position pos. If widget w is not null 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().

### void QWhatsThis::remove ( QWidget * widget )`[static]`

Removes the "What's this?" help associated with the widget. This happens automatically if the widget is destroyed.

See also add().

### QString QWhatsThis::text ( const QPoint & )`[virtual]`

This virtual function returns the text for position p in the widget that this "What's this?" object documents. If there is no "What's this?" text for a position, QString::null is returned.

The default implementation returns QString::null.

### QString QWhatsThis::textFor ( QWidget * w, const QPoint & pos = QPoint ( ), bool includeParents = FALSE )`[static]`

Returns the what's this text for widget w or a null string if there is no "What's this?" help for the widget. pos contains the mouse position; this is useful, for example, if you've subclassed to make the text that is displayed position dependent.

If includeParents is TRUE, parent widgets are taken into consideration as well.

See also add().

### QToolButton * QWhatsThis::whatsThisButton ( QWidget * parent )`[static]`

Creates a QToolButton preconfigured to enter "What's this?" mode when clicked. You will often use this with a tool bar as parent:

         (void) QWhatsThis::whatsThisButton( my_help_tool_bar );

This file is part of the Qt toolkit, copyright © 1995-2001 Trolltech, all rights reserved.