Qt 4.8
Signals | Public Functions | Protected Functions | Properties | List of all members
QShortcut Class Reference

The QShortcut class is used to create keyboard shortcuts. More...

#include <qshortcut.h>

Inheritance diagram for QShortcut:
QObject

Signals

void activated ()
 This signal is emitted when the user types the shortcut's key sequence. More...
 
void activatedAmbiguously ()
 When a key sequence is being typed at the keyboard, it is said to be ambiguous as long as it matches the start of more than one shortcut. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

bool autoRepeat () const
 
Qt::ShortcutContext context ()
 
int id () const
 Returns the shortcut's ID. More...
 
bool isEnabled () const
 
QKeySequence key () const
 
QWidgetparentWidget () const
 Returns the shortcut's parent widget. More...
 
 QShortcut (QWidget *parent)
 Constructs a QShortcut object for the parent widget. More...
 
 QShortcut (const QKeySequence &key, QWidget *parent, const char *member=0, const char *ambiguousMember=0, Qt::ShortcutContext context=Qt::WindowShortcut)
 Constructs a QShortcut object for the parent widget. More...
 
void setAutoRepeat (bool on)
 
void setContext (Qt::ShortcutContext context)
 
void setEnabled (bool enable)
 
void setKey (const QKeySequence &key)
 
void setWhatsThis (const QString &text)
 
QString whatsThis () const
 
 ~QShortcut ()
 Destroys the shortcut. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Protected Functions

bool event (QEvent *e)
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 

Properties

bool autoRepeat
 whether the shortcut can auto repeat More...
 
Qt::ShortcutContext context
 the context in which the shortcut is valid More...
 
bool enabled
 whether the shortcut is enabled More...
 
QKeySequence key
 the shortcut's key sequence More...
 
QString whatsThis
 the shortcut's "What's This?" help text More...
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QShortcut class is used to create keyboard shortcuts.

The QShortcut class provides a way of connecting keyboard shortcuts to Qt's signals and slots mechanism, so that objects can be informed when a shortcut is executed. The shortcut can be set up to contain all the key presses necessary to describe a keyboard shortcut, including the states of modifier keys such as Shift, Ctrl, and Alt.

On certain widgets, using '&' in front of a character will automatically create a mnemonic (a shortcut) for that character, e.g. "E&xit" will create the shortcut Alt+X (use '&&' to display an actual ampersand). The widget might consume and perform an action on a given shortcut. On X11 the ampersand will not be shown and the character will be underlined. On Windows, shortcuts are normally not displayed until the user presses the Alt key, but this is a setting the user can change. On Mac, shortcuts are disabled by default. Call qt_set_sequence_auto_mnemonic() to enable them. However, because mnemonic shortcuts do not fit in with Aqua's guidelines, Qt will not show the shortcut character underlined.

For applications that use menus, it may be more convenient to use the convenience functions provided in the QMenu class to assign keyboard shortcuts to menu items as they are created. Alternatively, shortcuts may be associated with other types of actions in the QAction class.

The simplest way to create a shortcut for a particular widget is to construct the shortcut with a key sequence. For example:

shortcut = new QShortcut(QKeySequence(tr("Ctrl+O", "File|Open")),

When the user types the key sequence for a given shortcut, the shortcut's activated() signal is emitted. (In the case of ambiguity, the activatedAmbiguously() signal is emitted.) A shortcut is "listened for" by Qt's event loop when the shortcut's parent widget is receiving events.

A shortcut's key sequence can be set with setKey() and retrieved with key(). A shortcut can be enabled or disabled with setEnabled(), and can have "What's This?" help text set with setWhatsThis().

See also
QShortcutEvent, QKeySequence, QAction

Definition at line 57 of file qshortcut.h.

Constructors and Destructors

◆ QShortcut() [1/2]

QShortcut::QShortcut ( QWidget parent)
explicit

Constructs a QShortcut object for the parent widget.

Since no shortcut key sequence is specified, the shortcut will not emit any signals.

See also
setKey()

Definition at line 198 of file qshortcut.cpp.

199  : QObject(*new QShortcutPrivate, parent)
200 {
201  Q_ASSERT(parent != 0);
202 }
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753

◆ QShortcut() [2/2]

QShortcut::QShortcut ( const QKeySequence key,
QWidget parent,
const char *  member = 0,
const char *  ambiguousMember = 0,
Qt::ShortcutContext  context = Qt::WindowShortcut 
)

Constructs a QShortcut object for the parent widget.

The shortcut operates on its parent, listening for QShortcutEvent that match the key sequence. Depending on the ambiguity of the event, the shortcut will call the member function, or the ambiguousMember function, if the key press was in the shortcut's context.

Definition at line 212 of file qshortcut.cpp.

215  : QObject(*new QShortcutPrivate, parent)
216 {
217  QAPP_CHECK("QShortcut");
218 
219  Q_D(QShortcut);
220  Q_ASSERT(parent != 0);
221  d->sc_context = context;
222  d->sc_sequence = key;
223  d->redoGrab(qApp->d_func()->shortcutMap);
224  if (member)
225  connect(this, SIGNAL(activated()), parent, member);
226  if (ambiguousMember)
227  connect(this, SIGNAL(activatedAmbiguously()), parent, ambiguousMember);
228 }
double d
Definition: qnumeric_p.h:62
#define QAPP_CHECK(functionName)
Definition: qshortcut.cpp:55
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define SIGNAL(a)
Definition: qobjectdefs.h:227
static bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Creates a connection of the given type from the signal in the sender object to the method in the rece...
Definition: qobject.cpp:2580
#define qApp
Qt::ShortcutContext context()
void activated()
This signal is emitted when the user types the shortcut&#39;s key sequence.
QKeySequence key() const
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753
void activatedAmbiguously()
When a key sequence is being typed at the keyboard, it is said to be ambiguous as long as it matches ...

◆ ~QShortcut()

QShortcut::~QShortcut ( )

Destroys the shortcut.

Definition at line 233 of file qshortcut.cpp.

234 {
235  Q_D(QShortcut);
236  if (qApp)
237  qApp->d_func()->shortcutMap.removeShortcut(d->sc_id, this);
238 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define qApp

Functions

◆ activated

void QShortcut::activated ( )
signal

This signal is emitted when the user types the shortcut's key sequence.

See also
activatedAmbiguously()

Referenced by event(), and QShortcut().

◆ activatedAmbiguously

void QShortcut::activatedAmbiguously ( )
signal

When a key sequence is being typed at the keyboard, it is said to be ambiguous as long as it matches the start of more than one shortcut.

When a shortcut's key sequence is completed, activatedAmbiguously() is emitted if the key sequence is still ambiguous (i.e., it is the start of one or more other shortcuts). The activated() signal is not emitted in this case.

See also
activated()

Referenced by event(), and QShortcut().

◆ autoRepeat()

bool QShortcut::autoRepeat ( ) const

Referenced by setAutoRepeat().

◆ context()

Qt::ShortcutContext QShortcut::context ( )

Referenced by QShortcut(), and setContext().

◆ event()

bool QShortcut::event ( QEvent e)
protectedvirtual
Warning
This function is not part of the public interface.

Reimplemented from QObject.

Definition at line 407 of file qshortcut.cpp.

408 {
409  Q_D(QShortcut);
410  bool handled = false;
411  if (d->sc_enabled && e->type() == QEvent::Shortcut) {
412  QShortcutEvent *se = static_cast<QShortcutEvent *>(e);
413  if (se->shortcutId() == d->sc_id && se->key() == d->sc_sequence){
414 #ifndef QT_NO_WHATSTHIS
416  QWhatsThis::showText(QCursor::pos(), d->sc_whatsthis);
417  handled = true;
418  } else
419 #endif
420  if (se->isAmbiguous())
422  else
423  emit activated();
424  handled = true;
425  }
426  }
427  return handled;
428 }
double d
Definition: qnumeric_p.h:62
The QShortcutEvent class provides an event which is generated when the user presses a key combination...
Definition: qevent.h:675
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define emit
Definition: qobjectdefs.h:76
static bool inWhatsThisMode()
Returns true if the user interface is in "What&#39;s This?" mode; otherwise returns false.
Definition: qwhatsthis.cpp:648
const QKeySequence & key()
Definition: qevent.h:681
int shortcutId()
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: qevent.h:683
void activated()
This signal is emitted when the user types the shortcut&#39;s key sequence.
bool isAmbiguous()
Definition: qevent.h:685
void activatedAmbiguously()
When a key sequence is being typed at the keyboard, it is said to be ambiguous as long as it matches ...
static void showText(const QPoint &pos, const QString &text, QWidget *w=0)
Shows text as a "What&#39;s This?" window, at global position pos.
Definition: qwhatsthis.cpp:754
Type type() const
Returns the event type.
Definition: qcoreevent.h:303
static QPoint pos()
Returns the position of the cursor (hot spot) in global screen coordinates.
Definition: qcursor_mac.mm:310

◆ id()

int QShortcut::id ( ) const

Returns the shortcut's ID.

See also
QShortcutEvent::shortcutId()

Definition at line 398 of file qshortcut.cpp.

399 {
400  Q_D(const QShortcut);
401  return d->sc_id;
402 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57

◆ isEnabled()

bool QShortcut::isEnabled ( ) const

Definition at line 298 of file qshortcut.cpp.

299 {
300  Q_D(const QShortcut);
301  return d->sc_enabled;
302 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57

◆ key()

QKeySequence QShortcut::key ( ) const

Referenced by QShortcut(), and setKey().

◆ parentWidget()

QWidget * QShortcut::parentWidget ( ) const
inline

Returns the shortcut's parent widget.

Definition at line 90 of file qshortcut.h.

Referenced by QShortcutMap::correctContext().

91  { return static_cast<QWidget *>(QObject::parent()); }
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
QObject * parent() const
Returns a pointer to the parent object.
Definition: qobject.h:273

◆ setAutoRepeat()

void QShortcut::setAutoRepeat ( bool  on)

Definition at line 377 of file qshortcut.cpp.

378 {
379  Q_D(QShortcut);
380  if (d->sc_autorepeat == on)
381  return;
382  QAPP_CHECK("setAutoRepeat");
383  d->sc_autorepeat = on;
384  qApp->d_func()->shortcutMap.setShortcutAutoRepeat(on, d->sc_id, this);
385 }
double d
Definition: qnumeric_p.h:62
#define QAPP_CHECK(functionName)
Definition: qshortcut.cpp:55
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define qApp

◆ setContext()

void QShortcut::setContext ( Qt::ShortcutContext  context)

Definition at line 319 of file qshortcut.cpp.

320 {
321  Q_D(QShortcut);
322  if(d->sc_context == context)
323  return;
324  QAPP_CHECK("setContext");
325  d->sc_context = context;
326  d->redoGrab(qApp->d_func()->shortcutMap);
327 }
double d
Definition: qnumeric_p.h:62
#define QAPP_CHECK(functionName)
Definition: qshortcut.cpp:55
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define qApp
Qt::ShortcutContext context()

◆ setEnabled()

void QShortcut::setEnabled ( bool  enable)

Definition at line 288 of file qshortcut.cpp.

289 {
290  Q_D(QShortcut);
291  if (d->sc_enabled == enable)
292  return;
293  QAPP_CHECK("setEnabled");
294  d->sc_enabled = enable;
295  qApp->d_func()->shortcutMap.setShortcutEnabled(enable, d->sc_id, this);
296 }
double d
Definition: qnumeric_p.h:62
#define QAPP_CHECK(functionName)
Definition: qshortcut.cpp:55
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define qApp

◆ setKey()

void QShortcut::setKey ( const QKeySequence key)

Definition at line 254 of file qshortcut.cpp.

Referenced by QFileDialogPrivate::createWidgets().

255 {
256  Q_D(QShortcut);
257  if (d->sc_sequence == key)
258  return;
259  QAPP_CHECK("setKey");
260  d->sc_sequence = key;
261  d->redoGrab(qApp->d_func()->shortcutMap);
262 }
double d
Definition: qnumeric_p.h:62
#define QAPP_CHECK(functionName)
Definition: qshortcut.cpp:55
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define qApp
QKeySequence key() const

◆ setWhatsThis()

void QShortcut::setWhatsThis ( const QString text)

Definition at line 352 of file qshortcut.cpp.

353 {
354  Q_D(QShortcut);
355  d->sc_whatsthis = text;
356 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QShortcut class is used to create keyboard shortcuts.
Definition: qshortcut.h:57
#define text
Definition: qobjectdefs.h:80

◆ whatsThis()

QString QShortcut::whatsThis ( ) const

Referenced by setWhatsThis().

Properties

◆ autoRepeat

bool QShortcut::autoRepeat
private

whether the shortcut can auto repeat

Since
4.2

If true, the shortcut will auto repeat when the keyboard shortcut combination is held down, provided that keyboard auto repeat is enabled on the system. The default value is true.

Definition at line 64 of file qshortcut.h.

◆ context

Qt::ShortcutContext QShortcut::context
private

the context in which the shortcut is valid

A shortcut's context decides in which circumstances a shortcut is allowed to be triggered. The normal context is Qt::WindowShortcut, which allows the shortcut to trigger if the parent (the widget containing the shortcut) is a subwidget of the active top-level window.

By default, this property is set to Qt::WindowShortcut.

Definition at line 65 of file qshortcut.h.

◆ enabled

QShortcut::enabled
private

whether the shortcut is enabled

An enabled shortcut emits the activated() or activatedAmbiguously() signal when a QShortcutEvent occurs that matches the shortcut's key() sequence.

If the application is in WhatsThis mode the shortcut will not emit the signals, but will show the "What's This?" text instead.

By default, this property is true.

See also
whatsThis

Definition at line 63 of file qshortcut.h.

◆ key

QKeySequence QShortcut::key
private

the shortcut's key sequence

This is a key sequence with an optional combination of Shift, Ctrl, and Alt. The key sequence may be supplied in a number of ways:

setKey(0); // no signal emitted
setKey(QKeySequence()); // no signal emitted
setKey(0x3b1); // Greek letter alpha
setKey(Qt::Key_D); // 'd', e.g. to delete
setKey('q'); // 'q', e.g. to quit
setKey(Qt::CTRL + Qt::Key_P); // Ctrl+P, e.g. to print document
setKey("Ctrl+P"); // Ctrl+P, e.g. to print document

By default, this property contains an empty key sequence.

Definition at line 61 of file qshortcut.h.

◆ whatsThis

QString QShortcut::whatsThis
private

the shortcut's "What's This?" help text

The text will be shown when the application is in "What's This?" mode and the user types the shortcut key() sequence.

To set "What's This?" help on a menu item (with or without a shortcut key), set the help on the item's action.

By default, this property contains an empty string.

See also
QWhatsThis::inWhatsThisMode(), QAction::setWhatsThis()

Definition at line 62 of file qshortcut.h.


The documentation for this class was generated from the following files: