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

# QAction Class Reference

The QAction class provides an abstract user interface action that can appear both in menus and tool bars. More...

`#include <qaction.h>`

Inherits QObject.

Inherited by QActionGroup.

List of all member functions.

## Public Members

- QAction ( QObject * parent, const char * name = 0, bool toggle = FALSE )
- QAction ( const QString & text, const QIconSet & icon, const QString & menuText, QKeySequence accel, QObject * parent, const char * name = 0, bool toggle = FALSE )
- QAction ( const QString & text, const QString & menuText, QKeySequence accel, QObject * parent, const char * name = 0, bool toggle = FALSE )
- ~QAction ()
- virtual void setIconSet ( const QIconSet & )
- QIconSet iconSet () const
- virtual void setText ( const QString & )
- QString text () const
- virtual void setMenuText ( const QString & )
- QString menuText () const
- virtual void setToolTip ( const QString & )
- QString toolTip () const
- virtual void setStatusTip ( const QString & )
- QString statusTip () const
- virtual void setWhatsThis ( const QString & )
- QString whatsThis () const
- virtual void setAccel ( const QKeySequence & key )
- QKeySequence accel () const
- virtual void setToggleAction ( bool )
- bool isToggleAction () const
- bool isOn () const
- bool isEnabled () const
- virtual bool addTo ( QWidget * w )
- virtual bool removeFrom ( QWidget * w )

## Public Slots

- void toggle ()
- virtual void setOn ( bool )
- virtual void setEnabled ( bool )

## Signals

- void activated ()
- void toggled ( bool )

## Properties

- QKeySequence accel - the action's accelerator key
- bool enabled - whether the action is enabled
- QIconSet iconSet - the action's icon
- QString menuText - the action's menu text
- bool on - whether a toggle action is on
- QString statusTip - the action's status tip
- QString text - the action's descriptive text
- bool toggleAction - whether the action is a toggle action
- QString toolTip - the action's tool tip
- QString whatsThis - the action's "What's This ?" help text

## Protected Members

- virtual void addedTo ( QWidget * actionWidget, QWidget * container )
- virtual void addedTo ( int index, QPopupMenu * menu )

## Detailed Description

The QAction class provides an abstract user interface action that can appear both in menus and tool bars.

In GUI applications many commands can be invoked via a menu option, a toolbar button and a keyboard accelerator. Since the same action must be performed regardless of how the action was invoked and since the menu and toolbar should be kept in sync it is useful to represent a command as an action. An action can be added to a menu and a toolbar and will automatically be kept in sync, for example, if the user presses a Bold toolbar button the Bold menu item will be checked.

A QAction may contain an icon, a menu text, an accelerator, a status text, a whats this text and a tool tip. Most of these can be set in the constructor. They can all be set independently with setIconSet(), setText(), setMenuText(), setToolTip(), setStatusTip(), setWhatsThis() and setAccel().

An action may be a toggle action e.g. a Bold toolbar button, or a command action, e.g. 'Open File' which invokes an open file dialog. Toggle actions emit the toggled() signal when their state changes. Both command and toggle actions emit the activated() signal when they are invoked. Use setToggleAction() to set an action's toggled status. To see if an action is a toggle action use isToggleAction(). A toggle action may be "on", isOn() returns TRUE, or "off", isOn() returns FALSE.

Actions are added to widgets (menus or toolbars) using addTo(), and removed using removeFrom().

Once a QAction has been created it should be added to the relevant menu and toolbar and then connected to the slot which will perform the action. For example:

            fileSaveAction = new QAction( "Save File", QPixmap( filesave ),
                                          "&Save", CTRL+Key_S, this, "save" );
            connect( fileSaveAction, SIGNAL( activated() ) , this, SLOT( save() ) );

We create a "Save File" action with a menu text of "&Save" and Ctrl+S as the keyboard accelerator. We connect the fileSaveAction's activated() signal to our save() slot. Note that at this point there is no menu or toolbar action, we'll add them next:

            QToolBar * fileTools = new QToolBar( this, "file operations" );

            fileSaveAction->addTo( fileTools );

            QPopupMenu * file = new QPopupMenu( this );
            menuBar()->insertItem( "&File", file );

            fileSaveAction->addTo( file );

We create a toolbar and add our fileSaveAction to it. Similarly we create a menu, add a top-level menu item, and add our fileSaveAction.

(See the Simple Application Walkthrough featuring QAction for a detailed example.)

We recommend that actions are created as children of the window that they are used in. In most cases actions will be children of the application's main window.

To prevent recursion don't create an action as a child of a widget that the action is later added to.

See also Main Window and Related Classes and Basic Widgets.

## Member Function Documentation

### QAction::QAction ( QObject * parent, const char * name = 0, bool toggle = FALSE )

Constructs an action with parent parent and name name.

If toggle is TRUE the action will be a toggle action otherwise it will be a command action.

If parent is a QActionGroup, the new action inserts itself into parent.

Note: for accelerators and status tips to work, parent must be a widget.

### QAction::QAction ( const QString & text, const QIconSet & icon, const QString & menuText, QKeySequence accel, QObject * parent, const char * name = 0, bool toggle = FALSE )

This constructor creates an action with the following properties: the description text, the icon or iconset icon, the menu text menuText and keyboard accelerator accel. It is a child of parent and named name. If toggle is TRUE the action will be a toggle action otherwise it will be a command action.

The parent should be a widget for accelerators and status tips to work.

If parent is a QActionGroup, the action automatically becomes a member of it.

The text and accel will be used for tool tips and status tips unless you provide specific text for these using setToolTip() and setStatusTip().

### QAction::QAction ( const QString & text, const QString & menuText, QKeySequence accel, QObject * parent, const char * name = 0, bool toggle = FALSE )

This constructor results in an iconless action with the description text, the menu text menuText and the keyboard accelerator accel. Its parent is parent and its name name. If toggle is TRUE the action will be a toggle action otherwise it will be a command action.

The action automatically becomes a member of parent if parent is a QActionGroup.

The parent should be a widget for accelerators and status tips to work.

The text and accel will be used for tool tips and status tips unless you provide specific text for these using setToolTip() and setStatusTip().

### QAction::~QAction ()

Destroys the object and frees allocated resources.

### QKeySequence QAction::accel () const

Returns the action's accelerator key. See the "accel" property for details.

### void QAction::activated ()`[signal]`

This signal is emitted when an action is activated by the user, i.e. when the user clicks a menu option or a toolbar button or presses an action's accelerator key combination.

Connect to this signal for command actions. Connect to the toggled() signal for toggle actions.

Example: action/application.cpp.

### bool QAction::addTo ( QWidget * w )`[virtual]`

Adds this action to widget w.

Currently actions may be added to QToolBar and QPopupMenu widgets.

An action added to a tool bar is automatically displayed as a tool button; an action added to a pop up menu appears as a menu option.

addTo() returns TRUE if the action was added successfully and FALSE otherwise. (If w is not a QToolBar or QPopupMenu the action will not be added and FALSE will be returned.)

See also removeFrom().

Examples: action/application.cpp, action/toggleaction/toggleaction.cpp and textedit/textedit.cpp.

Reimplemented in QActionGroup.

### void QAction::addedTo ( QWidget * actionWidget, QWidget * container )`[virtual protected]`

This function is called from the addTo() function when it created a widget (actionWidget) for the action in the container.

### void QAction::addedTo ( int index, QPopupMenu * menu )`[virtual protected]`

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

This function is called from the addTo() function when it created a menu item at the index index in the popup menu menu.

### QIconSet QAction::iconSet () const

Returns the action's icon. See the "iconSet" property for details.

### bool QAction::isEnabled () const

Returns TRUE if the action is enabled; otherwise returns FALSE. See the "enabled" property for details.

### bool QAction::isOn () const

Returns TRUE if a toggle action is on; otherwise returns FALSE. See the "on" property for details.

### bool QAction::isToggleAction () const

Returns TRUE if the action is a toggle action; otherwise returns FALSE. See the "toggleAction" property for details.

### QString QAction::menuText () const

Returns the action's menu text. See the "menuText" property for details.

### bool QAction::removeFrom ( QWidget * w )`[virtual]`

Removes the action from widget w.

Returns TRUE if the action was removed successfully, FALSE otherwise.

See also addTo().

### void QAction::setAccel ( const QKeySequence & key )`[virtual]`

Sets the action's accelerator key to key. See the "accel" property for details.

### void QAction::setEnabled ( bool )`[virtual slot]`

Sets whether the action is enabled. See the "enabled" property for details.

### void QAction::setIconSet ( const QIconSet & )`[virtual]`

Sets the action's icon. See the "iconSet" property for details.

### void QAction::setMenuText ( const QString & )`[virtual]`

Sets the action's menu text. See the "menuText" property for details.

### void QAction::setOn ( bool )`[virtual slot]`

Sets whether a toggle action is on. See the "on" property for details.

### void QAction::setStatusTip ( const QString & )`[virtual]`

Sets the action's status tip. See the "statusTip" property for details.

### void QAction::setText ( const QString & )`[virtual]`

Sets the action's descriptive text. See the "text" property for details.

### void QAction::setToggleAction ( bool )`[virtual]`

Sets whether the action is a toggle action. See the "toggleAction" property for details.

### void QAction::setToolTip ( const QString & )`[virtual]`

Sets the action's tool tip. See the "toolTip" property for details.

### void QAction::setWhatsThis ( const QString & )`[virtual]`

Sets the action's "What's This ?" help text. See the "whatsThis" property for details.

### QString QAction::statusTip () const

Returns the action's status tip. See the "statusTip" property for details.

### QString QAction::text () const

Returns the action's descriptive text. See the "text" property for details.

### void QAction::toggle ()`[slot]`

Toggles the state of a toggle action.

See also on, toggled() and toggleAction.

### void QAction::toggled ( bool )`[signal]`

This signal is emitted when a toggle action changes state; command actions and QActionGroups don't emit toggled().

The argument denotes the new state; i.e. TRUE if the toggle action was switched on and FALSE if it was switched off.

To trigger a user command depending on whether a toggle action has been switched on or off connect it to a slot that takes a bool to indicate the state, e.g.

            QMainWindow * window = new QMainWindow;

            QAction * labelonoffaction = new QAction( window, "labelonoff", TRUE );

            QObject::connect( labelonoffaction, SIGNAL( toggled( bool ) ),
                              window, SLOT( setUsesTextLabel( bool ) ) );

See also activated(), toggleAction and on.

Example: action/toggleaction/toggleaction.cpp.

### QString QAction::toolTip () const

Returns the action's tool tip. See the "toolTip" property for details.

### QString QAction::whatsThis () const

Returns the action's "What's This ?" help text. See the "whatsThis" property for details.

## Property Documentation

### QKeySequence accel

This property holds the action's accelerator key.

The keycodes can be found in Qt::Key and Qt::Modifier.

Set this property's value with setAccel() and get this property's value with accel().

### bool enabled

This property holds whether the action is enabled.

Disabled actions can't be chosen by the user. They don't disappear from the menu/tool bar but are displayed in a way which indicates that they are unavailable, e.g. they might be displayed greyed out.

What's this? help on disabled actions is still available provided the QAction::whatsThis property is set.

Set this property's value with setEnabled() and get this property's value with isEnabled().

### QIconSet iconSet

This property holds the action's icon.

The icon is used as tool button icon and in the menu to the left of the menu text.

(See the action/toggleaction/toggleaction.cpp example.)

Set this property's value with setIconSet() and get this property's value with iconSet().

### QString menuText

This property holds the action's menu text.

If the action is added to a menu the menu option will consist of the icon (if there is one), the menu text and the accelerator (if there is one). If the menu text is not explicitly set in the constructor or using setMenuText() the action's description text will be used as the menu text.

See also text.

Set this property's value with setMenuText() and get this property's value with menuText().

### bool on

This property holds whether a toggle action is on.

This property is always on for command actions and QActionGroups. setOn() has no effect on them.

See also toggleAction.

Set this property's value with setOn() and get this property's value with isOn().

### QString statusTip

This property holds the action's status tip.

The statusTip is displayed on all status bars that the toplevel widget parenting this action provides.

If no status tip is defined, the action uses the tool tip text.

See also statusTip and toolTip.

Set this property's value with setStatusTip() and get this property's value with statusTip().

### QString text

This property holds the action's descriptive text.

If QMainWindow::usesTextLabel is TRUE, the text appears as a label in the relevant toolbutton. It also serves as the default text in menus and tips if these have not been specifically defined.

See also menuText, toolTip and statusTip.

Set this property's value with setText() and get this property's value with text().

### bool toggleAction

This property holds whether the action is a toggle action.

A toggle action is one which has an on/off state. For example a Bold toolbar button is either on or off. An action which is not a toggle action is a command action; a command action is simply executed. For example a file open toolbar button would invoke a file open dialog.

For exclusive toggling, add toggle actions to a QActionGroup with the QActionGroup::exclusive property set to TRUE.

Set this property's value with setToggleAction() and get this property's value with isToggleAction().

### QString toolTip

This property holds the action's tool tip.

This text is used for the tool tip. If no status tip has been set the tool tip will be used for the status tip.

If no tool tip is specified the action's text and accelerator description are used as a default tool tip.

See also statusTip and accel.

Set this property's value with setToolTip() and get this property's value with toolTip().

### QString whatsThis

This property holds the action's "What's This ?" help text.

The whats this text is used to provide a brief description of the action. The text may contain rich text (i.e. HTML tags -- see QStyleSheet for the list of supported tags).

See also QWhatsThis.

Set this property's value with setWhatsThis() and get this property's value with whatsThis().

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