QShortcut 类
QShortcut 类用于创建键盘快捷方式。更多信息...
头文件 | #include <QShortcut> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承 | QObject |
- 所有成员列表,包括继承的成员
- 已弃用的成员
- QShortcut 是事件类的一部分。
属性
- autoRepeat : bool
- context : Qt::ShortcutContext
- enabled : bool
- key : QKeySequence
公共函数
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() |
bool | autoRepeat() const |
Qt::ShortcutContext | context() const |
bool | isEnabled() const |
QKeySequence | key() const |
(since 6.0) QList<QKeySequence> | keys() const |
QWidget * | parentWidget() const |
void | setAutoRepeat(bool on) |
void | setContext(Qt::ShortcutContext context) |
void | setEnabled(bool enable) |
void | setKey(const QKeySequence &key) |
(since 6.0) void | setKeys(QKeySequence::StandardKey key) |
(since 6.0) void | setKeys(const QList<QKeySequence> &keys) |
void | setWhatsThis(const QString &text) |
QString | whatsThis() const |
信号
void | activated() |
void | activatedAmbiguously() |
详细描述
QShortcut类提供了一种将键盘快捷键连接到Qt的信号和槽机制的方法,以便对象能在执行快捷键时接收通知。快捷键可以包含描述快捷键所需的所有按键,包括转换键的状态,如Shift、Ctrl和Alt。
在窗口小部件应用程序中,某些小部件可以在字符前使用 '&'。这将为该字符自动创建一个快捷方式(通配符),例如,“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() 设置“这是什么?”的帮助文本。
另请参阅 QShortcutEvent,QKeySequence,以及 QAction。
属性文档
autoRepeat : bool
该属性表示是否可以自动重复执行快捷键
如果为 true,则当按住键盘快捷键组合时,如果系统启用了键盘自动重复,快捷键将自动重复。默认值是 true。
访问函数
bool | autoRepeat() const |
void | setAutoRepeat(bool on) |
context : Qt::ShortcutContext
该属性表示快捷键有效的作用域
快捷键的作用域决定在什么情况下可以触发快捷键。常规作用域是 Qt::WindowShortcut,允许当父级(包含快捷键的小部件)是活动顶层窗口的子窗口时触发快捷键。
默认情况下,此属性设置为 Qt::WindowShortcut。
访问函数
Qt::ShortcutContext | context() const |
void | setContext(Qt::ShortcutContext context) |
enabled : bool
该属性表示快捷键是否启用
启用的快捷键在发生匹配快捷键的键序的 QShortcutEvent 时发出 activated() 或 activatedAmbiguously() 信号。
如果应用程序处于 WhatsThis
模式,快捷键将不会发出信号,而是显示“这是什么?”文本。
默认情况下,此属性值为 true
。
访问函数
bool | isEnabled() const |
void | setEnabled(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
默认情况下,此属性包含一个空键序。
访问函数
QKeySequence | key() const |
void | setKey(const QKeySequence &key) |
成员函数文档
[显式]
QShortcut::QShortcut(QObject *parent)
为 parent 构造一个 QShortcut 对象,其中 parent 应为 QWindow 或 QWidget。
由于没有指定快捷键序列,因此快捷键不会发出任何信号。
另请参阅 setKey ()。
[显式]
QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
为 parent 构造一个 QShortcut 对象,其中 parent 应为 QWindow 或 QWidget。
快捷操作应用于其父级,监听匹配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 应为 QWindow 或 QWidget。
快捷操作应用于其父级,监听匹配standardKey的QShortcutEvent。根据事件的不确定性,快捷键将调用member函数,或者如果按键发生在快捷键的context中,将调用ambiguousMember函数。
此函数自Qt 6.0起引入。
QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式激活信号activated()连接到functor。
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式激活信号activated()连接到functor。
functor可以是context对象成员函数的指针。
如果context对象被销毁,则不会调用functor。
QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式的激活信号activated()连接到functor,并将激活信号activatedAmbiguously()连接到functorAmbiguous。
functor和functorAmbiguous可以是context对象成员函数的指针。
如果context对象被销毁,则不会调用functor和functorAmbiguous。
模板 <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context1, QObject *context2, Functor functor, const QObject *functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式的激活信号activated()连接到functor,并将激活信号activatedAmbiguously()连接到functorAmbiguous。
functor 可以是指向 context1 对象成员函数的指针。 functorAmbiguous 可以是指向 context2 对象成员函数的指针。
如果 context1 对象被销毁,则不调用 functor。如果 context2 对象被销毁,则不调用 functorAmbiguous。
[since 6.0]
模板 <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式激活信号activated()连接到functor。
此函数自Qt 6.0起引入。
[since 6.0]
模板 <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式激活信号activated()连接到functor。
functor可以是context对象成员函数的指针。
如果context对象被销毁,则不会调用functor。
此函数自Qt 6.0起引入。
[since 6.0]
模板 <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式的激活信号activated()连接到functor,并将激活信号activatedAmbiguously()连接到functorAmbiguous。
functor和functorAmbiguous可以是context对象成员函数的指针。
如果context对象被销毁,则不会调用functor和functorAmbiguous。
此函数自Qt 6.0起引入。
[since 6.0]
模板 <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
这是一个重载函数。
这是一个QShortcut便捷构造函数,它将快捷方式的激活信号activated()连接到functor,并将激活信号activatedAmbiguously()连接到functorAmbiguous。
functor 可以是指向 context1 对象成员函数的指针。 functorAmbiguous 可以是指向 context2 对象成员函数的指针。
如果 context1 对象被销毁,则不调用 functor。如果 context2 对象被销毁,则不调用 functorAmbiguous。
此函数自Qt 6.0起引入。
[virtual noexcept]
QShortcut::~QShortcut()
销毁快捷键。
[signal]
void QShortcut::activated()
当用户输入快捷键序列时,会发出此信号。
另请参阅activatedAmbiguously()。
[signal]
void QShortcut::activatedAmbiguously()
当在键盘上输入键序列时,只要它匹配多个快捷键的开始,就称其为模糊。
当快捷键的键序完成时,如果键序仍然模糊(即,它是其他一个或多个快捷键的开始),则发出 activatedAmbiguously() 信号。在这种情况下,不发出 activated() 信号。
另请参阅 activated。
[since 6.0]
QList<QKeySequence> QShortcut::keys() const
返回触发此快捷键的键序列表。
此函数自Qt 6.0起引入。
QWidget *QShortcut::parentWidget() const
返回快捷键的父级窗口。
[since 6.0]
void QShortcut::setKeys(QKeySequence::StandardKey key)
将触发设置为与标准键 key 匹配的键。
此函数自Qt 6.0起引入。
[since 6.0]
void QShortcut::setKeys(const QList<QKeySequence> &keys)
将 keys 设置为触发快捷键的键序列表。
此函数自Qt 6.0起引入。
void QShortcut::setWhatsThis(const QString &text)
设置快捷键的“这是什么”帮助 文本。
当窗口应用程序处于“这是什么”模式且用户输入快捷键 键 序列时,将显示该文本。
要设置菜单项(带或不带快捷键)的“这是什么”帮助信息,请在该项的操作上设置帮助。
默认情况下,帮助文本为空字符串。
此函数在未使用小部件的应用程序中不起作用。
另请参阅 whatsThis,QWhatsThis::inWhatsThisMode 和 QAction::setWhatsThis。
QString QShortcut::whatsThis() const
返回快捷键的“这是什么”帮助文本。
另请参阅 setWhatsThis。
© 2024 The Qt Company Ltd. 以下文档贡献是其各自所有者的版权。本提供的文档是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款许可的。Qt及其相关标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。