Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

Visindigo::Widgets::ShortcutSet Class

class Visindigo::Widgets::ShortcutSet

ShortcutSet基于QShortcut实现了一个更快捷的集合. 详情...

头文件: #include <ShortcutSet>
自以下版本: Visindigo 0.14.0

公开成员函数

(自 Visindigo 0.14.0 引入) ShortcutSet(QWidget *parent)
(自 Visindigo 0.14.0 引入) virtual ~ShortcutSet()
(自 Visindigo 0.14.0 引入) void addShortcut(const QString &actionName, const QKeySequence &shortcut)
(自 Visindigo 0.14.0 引入) void addShortcut(const QString &actionName, int shortcut)
(自 Visindigo 0.14.0 引入) void clearShortcuts()
(自 Visindigo 0.14.0 引入) QString getActionNameOfShortcut(const QKeySequence &shortcut) const
(自 Visindigo 0.14.0 引入) QList<QKeySequence> getShortcutOfActionName(const QString &actionName) const
(自 Visindigo 0.14.0 引入) QMap<QKeySequence, QString> getShortcuts() const
(自 Visindigo 0.14.0 引入) QWidget *getWatchedWidget() const

信号

(自 Visindigo 0.14.0 引入) void actionTriggered(const QString &actionName)

详细说明

ShortcutSet类基于QShortcut实现了一个更快捷的集合,用户可以通过addShortcut方法添加快捷键, 并且可以通过actionTriggered信号监听快捷键的触发事件。每个快捷键都与一个字符串类型的动作名称相关联, 当快捷键被触发时,actionTriggered信号会传递对应的动作名称。

使用这个类有潜在的内存泄露风险,因为该类本身和其创建的QShortcut对象均为被监听对象的同级子对象, 因此这个类不能在它自己被销毁时尝试销毁其保存的QShortcut指针(无法断定保存的指针是否仍然有效)。 这个类在销毁时,是指望Qt的父子对象机制来销毁所有的QShortcut对象的,

所以,如果在添加了快捷键之后不做任何其他操作,任由此类随着被监听对象销毁,那么就不存在内存泄露风险。 其内部任何QShortcut指针最终都会由Qt释放。

但如果你出于某种原因,必须先于被监听对象销毁此类,那么你就必须在销毁此类之前手动调用clearShortcuts 方法来销毁所有的QShortcut对象,以避免内存泄露。

Warning: 目前不建议使用此类,其仍处于技术预览状态。

成员函数文档

[since Visindigo 0.14.0] ShortcutSet::ShortcutSet(QWidget *parent)

parent 父窗口 构造函数。

虽然Qt要求QShortcut的父对象可以是QWidgetQWindow,但目前暂时只提供QWidget的支持。

这个function 从 Visindigo 0.14.0 开始支持。

[virtual noexcept, since Visindigo 0.14.0] ShortcutSet::~ShortcutSet()

析构函数

有关你在手动析构前可能需要做的操作,请参见类的文档说明。

这个function 从 Visindigo 0.14.0 开始支持。

[signal, since Visindigo 0.14.0] void ShortcutSet::actionTriggered(const QString &actionName)

actionName 被触发的动作名称

当快捷键被触发时发出,传递对应的动作名称

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] void ShortcutSet::addShortcut(const QString &actionName, const QKeySequence &shortcut)

actionName 动作名称 shortcut 快捷键

添加一个快捷键与动作名称的关联

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] void ShortcutSet::addShortcut(const QString &actionName, int shortcut)

actionName 动作名称 shortcut 快捷键枚举值

添加一个快捷键与动作名称的关联,快捷键使用QKeySequence::StandardKey枚举值

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] void ShortcutSet::clearShortcuts()

清除所有的快捷键与动作名称的关联 这个方法会删除所有的QShortcut对象,并清空内部的数据结构。请注意,如果你在调用此方法后继续使用此类, 你需要重新添加快捷键与动作名称的关联,否则将无法触发任何动作。

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] QString ShortcutSet::getActionNameOfShortcut(const QKeySequence &shortcut) const

shortcut 快捷键

根据快捷键获取对应的动作名称,如果没有找到则返回空字符串

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] QList<QKeySequence> ShortcutSet::getShortcutOfActionName(const QString &actionName) const

actionName 动作名称

根据动作名称获取对应的快捷键列表 return 一个QList,包含所有与该动作名称相关联的快捷键

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] QMap<QKeySequence, QString> ShortcutSet::getShortcuts() const

return 所有的快捷键与动作名称的关联 return 一个QMap,键为快捷键,值为对应的动作名称

这个function 从 Visindigo 0.14.0 开始支持。

[since Visindigo 0.14.0] QWidget *ShortcutSet::getWatchedWidget() const

return 被监听的QWidget对象

这个function 从 Visindigo 0.14.0 开始支持。