# TQWhatsThis Class

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

# TQWhatsThis Class Reference

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

`#include <ntqwhatsthis.h>`

Inherits TQt.

List of all member functions.

## Public Members

- TQWhatsThis ( TQWidget * widget )
- virtual ~TQWhatsThis ()
- virtual TQString text ( const TQPoint & )
- virtual bool clicked ( const TQString & href )

## Static Public Members

- void setFont ( const TQFont & font )
- void add ( TQWidget * widget, const TQString & text )
- void remove ( TQWidget * widget )
- TQString textFor ( TQWidget * w, const TQPoint & pos = TQPoint ( ), bool includeParents = FALSE )
- TQToolButton * whatsThisButton ( TQWidget * parent )
- void enterWhatsThisMode ()
- bool inWhatsThisMode ()
- void leaveWhatsThisMode ( const TQString & text = TQString::null, const TQPoint & pos = TQCursor::pos ( ), TQWidget * w = 0 )
- void display ( const TQString & text, const TQPoint & pos = TQCursor::pos ( ), TQWidget * w = 0 )

## Detailed Description

The TQWhatsThis 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.

TQWhatsThis 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 TQWhatsThis::add() for the widget. For example, to assign text to a menu item, call TQMenuData::setWhatsThis(); for a global accelerator key, call TQAccel::setWhatsThis() and If you're using actions, use TQAction::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 TQStyleSheet::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>";
            TQMimeSourceFactory::defaultFactory()->setPixmap( "document-open",
                                  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 TQWhatsThis::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 TQMainWindow you can also use the TQMainWindow::whatsThis() slot to invoke the mode from a menu item.

For more control you can create a dedicated TQWhatsThis object for a special widget. By subclassing and reimplementing TQWhatsThis::text() it is possible to have different help texts, depending on the position of the mouse click. By reimplementing TQWhatsThis::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 TQWidget::customWhatsThis().

The What's This object can be removed using TQWhatsThis::remove(), although this is rarely necessary because it is automatically removed when the widget is destroyed.

See also TQToolTip and Help System.

## Member Function Documentation

### TQWhatsThis::TQWhatsThis ( TQWidget * widget )

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

When the widget is queried by the user the text() function of this TQWhatsThis will be called to provide the appropriate text, rather than using the text assigned by add().

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

Destroys the object and frees any allocated resources.

### void TQWhatsThis::add ( TQWidget * widget, const TQString & 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 TQStyleSheet::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, helpsystem/mainwindow.cpp, and mdi/application.cpp.

### bool TQWhatsThis::clicked ( const TQString & 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 TQString::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 TQWhatsThis::display ( const TQString & text, const TQPoint & pos = TQCursor::pos ( ), TQWidget * w = 0 )`[static]`

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

If widget w is not 0 and has its own dedicated TQWhatsThis object, this object will receive clicked() messages when the user clicks on hyperlinks inside the help text.

See also TQWhatsThis::clicked().

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

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

TQt 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, TQt 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 TQWhatsThis::inWhatsThisMode ()`[static]`

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

See also enterWhatsThisMode() and leaveWhatsThisMode().

### void TQWhatsThis::leaveWhatsThisMode ( const TQString & text = TQString::null, const TQPoint & pos = TQCursor::pos ( ), TQWidget * w = 0 )`[static]`

Leaves "What's this?" question mode.

This function is used internally by widgets that support TQWidget::customWhatsThis(); applications do not usually call it. An example of such a widget is TQPopupMenu: menus still work normally in "What's this?" mode but also provide help texts for individual menu items.

If text is not TQString::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 TQWhatsThis object, this object will receive clicked() messages when the user clicks on hyperlinks inside the help text.

See also inWhatsThisMode(), enterWhatsThisMode(), and TQWhatsThis::clicked().

### void TQWhatsThis::remove ( TQWidget * widget )`[static]`

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

See also add().

### void TQWhatsThis::setFont ( const TQFont & font )`[static]`

Sets the font for all "What's this?" helps to font.

### TQString TQWhatsThis::text ( const TQPoint & )`[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 the position, TQString::null is returned.

The default implementation returns TQString::null.

### TQString TQWhatsThis::textFor ( TQWidget * w, const TQPoint & pos = TQPoint ( ), bool includeParents = FALSE )`[static]`

Returns the what's this text for widget w or TQString::null 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 when looking for what's this help text.

See also add().

### TQToolButton * TQWhatsThis::whatsThisButton ( TQWidget * parent )`[static]`

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

            (void) TQWhatsThis::whatsThisButton( my_help_tool_bar );

Example: helpsystem/mainwindow.cpp.

This file is part of the TQt toolkit. Copyright © 1995-2007 Trolltech. All Rights Reserved.