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

# Q3ActionGroup Class Reference

The Q3ActionGroup class groups actions together. More...

    #include <Q3ActionGroup>

This class is part of the Qt 3 compatibility library. It is provided to keep old source code working. We strongly advise against using it in new code.

Inherits Q3Action.

- List of all members, including inherited members

### Writable Properties

- exclusive : bool
- usesDropDown : bool

- 11 writable properties inherited from Q3Action
- 1 writable property inherited from QObject

### Public Functions

- Q3ActionGroup ( QObject * parent, const char * name = 0 )
- Q3ActionGroup ( QObject * parent, const char * name, bool exclusive )
- ~Q3ActionGroup ()
- void add ( Q3Action * action )
- void addSeparator ()
- virtual bool addTo ( QWidget * w )
- void insert ( Q3Action * action )

- 2 public functions inherited from Q3Action
- 24 public functions inherited from QObject

### Public Slots

- 6 public slots inherited from Q3Action
- 1 public slot inherited from QObject

### Signals

- void activated ( Q3Action * action )
- void selected ( Q3Action * action )

- 2 signals inherited from Q3Action
- 1 signal inherited from QObject

### Static Public Members

- 4 static public members inherited from QObject

### Protected Functions

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

- 2 protected functions inherited from Q3Action
- 9 protected functions inherited from QObject

## Detailed Description

The Q3ActionGroup class groups actions together.

In some situations it is useful to group actions together. For example, if you have a left justify action, a right justify action and a center action, only one of these actions should be active at any one time, and one simple way of achieving this is to group the actions together in an action group.

An action group can also be added to a menu or a toolbar as a single unit, with all the actions within the action group appearing as separate menu options and toolbar buttons.

Here's an example from demos/textedit:

            QActionGroup *grp = new QActionGroup(this);
            connect(grp, SIGNAL(triggered(QAction *)), this, SLOT(textAlign(QAction *)));

Here we create a new action group. Since the action group is exclusive by default, only one of the actions in the group is ever active at any one time. We then connect the group's selected() signal to our textAlign() slot.

            actionAlignLeft = new QAction(QPixmap(":/images/textleft.png"), tr("&Left"), grp);
            actionAlignLeft->setShortcut(Qt::CTRL + Qt::Key_L);
            actionAlignLeft->setCheckable(true);

We create a left align action, add it to the toolbar and the menu and make it a toggle action. We create center and right align actions in exactly the same way.

The actions in an action group emit their activated() (and for toggle actions, toggled()) signals as usual.

The setExclusive() function is used to ensure that only one action is active at any one time: it should be used with actions which have their `toggleAction` set to true.

Action group actions appear as individual menu options and toolbar buttons. For exclusive action groups use setUsesDropDown() to display the actions in a subwidget of any widget the action group is added to. For example, the actions would appear in a combobox in a toolbar or as a submenu in a menu.

Actions can be added to an action group using add(), but normally they are added by creating the action with the action group as parent. Actions can have separators dividing them using addSeparator(). Action groups are added to widgets with addTo().

## Property Documentation

### exclusive : bool

This property holds whether the action group does exclusive toggling.

If exclusive is true only one toggle action in the action group can ever be active at any one time. If the user chooses another toggle action in the group the one they chose becomes active and the one that was active becomes inactive.

Access functions:

- bool isExclusive () const
- void setExclusive ( bool )

See also Q3Action::toggleAction.

### usesDropDown : bool

This property holds whether the group's actions are displayed in a subwidget of the widgets the action group is added to.

Exclusive action groups added to a toolbar display their actions in a combobox with the action's Q3Action::text and Q3Action::iconSet properties shown. Non-exclusive groups are represented by a tool button showing their Q3Action::iconSet and -- depending on QMainWindow::usesTextLabel() -- text() property.

In a popup menu the member actions are displayed in a submenu.

Changing usesDropDown only affects subsequent calls to addTo().

This property's default is false.

Access functions:

- bool usesDropDown () const
- void setUsesDropDown ( bool enable )

## Member Function Documentation

### Q3ActionGroup::Q3ActionGroup ( QObject * parent, const char * name = 0 )

Constructs an action group called name, with parent parent.

The action group is exclusive by default. Call setExclusive(false) to make the action group non-exclusive.

### Q3ActionGroup::Q3ActionGroup ( QObject * parent, const char * name, bool exclusive )

Constructs an action group called name, with parent parent.

If exclusive is true only one toggle action in the group will ever be active.

See also exclusive.

### Q3ActionGroup::~Q3ActionGroup ()

Destroys the object and frees allocated resources.

### void Q3ActionGroup::activated ( Q3Action * action ) `[signal]`

This signal is emitted from groups when one of it's actions gets activated.

The argument is the action which was activated.

See also setExclusive(), isOn(), and Q3Action::toggled().

### void Q3ActionGroup::add ( Q3Action * action )

Adds action action to this group.

Normally an action is added to a group by creating it with the group as parent, so this function is not usually used.

See also addTo().

### void Q3ActionGroup::addSeparator ()

Adds a separator to the group.

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

Adds this action group to the widget w.

If isExclusive() is false or usesDropDown() is false, the actions within the group are added to the widget individually. For example, if the widget is a menu, the actions will appear as individual menu options, and if the widget is a toolbar, the actions will appear as toolbar buttons.

If both isExclusive() and usesDropDown() are true, the actions are presented either in a combobox (if w is a toolbar) or in a submenu (if w is a menu).

All actions should be added to the action group before the action group is added to the widget. If actions are added to the action group after the action group has been added to the widget these later actions will not appear.

Reimplemented from Q3Action.

See also setExclusive(), setUsesDropDown(), and removeFrom().

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

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

### void Q3ActionGroup::addedTo ( int index, QPopupMenu * menu, Q3Action * a ) `[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 has created a menu item for the child action at the index position index in the popup menu menu.

### void Q3ActionGroup::insert ( Q3Action * action )

Use add(action) instead.

### void Q3ActionGroup::selected ( Q3Action * action ) `[signal]`

This signal is emitted from exclusive groups when toggle actions change state.

The argument is the action whose state changed to "on".

See also setExclusive(), isOn(), and Q3Action::toggled().