QShortcut 类

QShortcut 类用于创建键盘快捷方式。更多信息...

头文件 #include <QShortcut>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承 QObject

属性

公共函数

QShortcut(QObject *parent)
QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
(自 6.0 开始) QShortcut(QKeySequence::StandardKey standardKey, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(自 6.0 开始) QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(自 6.0 开始) QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(自 6.0 开始) QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
(自 6.0 开始) QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
虚函数~QShortcut()
boolautoRepeat() const
Qt::ShortcutContextcontext() const
boolisEnabled() const
QKeySequencekey() const
(since 6.0) QList<QKeySequence>keys() const
QWidget *parentWidget() const
voidsetAutoRepeat(bool on)
voidsetContext(Qt::ShortcutContext context)
voidsetEnabled(bool enable)
voidsetKey(const QKeySequence &key)
(since 6.0) voidsetKeys(QKeySequence::StandardKey key)
(since 6.0) voidsetKeys(const QList<QKeySequence> &keys)
voidsetWhatsThis(const QString &text)
QStringwhatsThis() const

信号

详细描述

QShortcut类提供了一种将键盘快捷键连接到Qt的信号和槽机制的方法,以便对象能在执行快捷键时接收通知。快捷键可以包含描述快捷键所需的所有按键,包括转换键的状态,如ShiftCtrlAlt

在窗口小部件应用程序中,某些小部件可以在字符前使用 '&'。这将为该字符自动创建一个快捷方式(通配符),例如,“E&xit”将创建快捷方式Alt+X(使用'&&'来显示实际的 ampersand)。小部件可能会消耗并执行给定的快捷键。在X11中,&符号不会被显示,字符将被下划线。在Windows中,通常直到用户按下Alt键之前,快捷键才显示出来,但用户可以更改此设置。在Mac上,默认禁用快捷键。调用qt_set_sequence_auto_mnemonic()来启用它们。然而,由于通配符快捷键与Aqua的指南不匹配,Qt不会在快捷键字符下显示下划线。

对于使用菜单的应用程序,可能更方便使用QMenu类提供的一些便利函数来为创建的小部件设置键盘快捷键。或者,可以在QAction类中将快捷键与其他类型的操作相关联。

为特定小部件创建快捷键的最简单方法是用按键序列构造快捷键。例如

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

当用户输入给定快捷键的按键序列时,快捷键的activated()信号会被发射。 (在歧义的情况下,会发射activatedAmbiguously()信号。)当快捷键的父小部件接收事件时,Qt的事件循环会“监听”快捷键。

可以通过 setKey() 设置快捷键的键序,并使用 key() 获取键序。可以使用 setEnabled() 开启或禁用快捷键,并且可以通过 setWhatsThis() 设置“这是什么?”的帮助文本。

另请参阅 QShortcutEventQKeySequence,以及 QAction

属性文档

autoRepeat : bool

该属性表示是否可以自动重复执行快捷键

如果为 true,则当按住键盘快捷键组合时,如果系统启用了键盘自动重复,快捷键将自动重复。默认值是 true。

访问函数

boolautoRepeat() const
voidsetAutoRepeat(bool on)

context : Qt::ShortcutContext

该属性表示快捷键有效的作用域

快捷键的作用域决定在什么情况下可以触发快捷键。常规作用域是 Qt::WindowShortcut,允许当父级(包含快捷键的小部件)是活动顶层窗口的子窗口时触发快捷键。

默认情况下,此属性设置为 Qt::WindowShortcut

访问函数

Qt::ShortcutContextcontext() const
voidsetContext(Qt::ShortcutContext context)

enabled : bool

该属性表示快捷键是否启用

启用的快捷键在发生匹配快捷键的键序的 QShortcutEvent 时发出 activated() 或 activatedAmbiguously() 信号。

如果应用程序处于 WhatsThis 模式,快捷键将不会发出信号,而是显示“这是什么?”文本。

默认情况下,此属性值为 true

访问函数

boolisEnabled() const
voidsetEnabled(bool enable)

另请参阅 whatsThis

key : QKeySequence

该属性表示快捷键的主要键序

这是一个包含 Shift、Ctrl 和 Alt 任意组合的键序。键序可以通过多种方式提供

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

默认情况下,此属性包含一个空键序。

访问函数

QKeySequencekey() const
voidsetKey(const QKeySequence &key)

成员函数文档

[显式] QShortcut::QShortcut(QObject *parent)

parent 构造一个 QShortcut 对象,其中 parent 应为 QWindowQWidget

由于没有指定快捷键序列,因此快捷键不会发出任何信号。

另请参阅 setKey ()。

[显式] QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)

parent 构造一个 QShortcut 对象,其中 parent 应为 QWindowQWidget

快捷操作应用于其父级,监听匹配key序列的QShortcutEvent。根据事件的不确定性,快捷键将调用member函数,或者如果按键发生在快捷键的context中,将调用ambiguousMember函数。

[自6.0起显式] QShortcut::QShortcut(QKeySequence::StandardKey standardKey, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)

parent 构造一个 QShortcut 对象,其中 parent 应为 QWindowQWidget

快捷操作应用于其父级,监听匹配standardKeyQShortcutEvent。根据事件的不确定性,快捷键将调用member函数,或者如果按键发生在快捷键的context中,将调用ambiguousMember函数。

此函数自Qt 6.0起引入。