Visindigo::Widgets::ShortcutSet Class
class Visindigo::Widgets::ShortcutSetShortcutSet基于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的父对象可以是QWidget或QWindow,但目前暂时只提供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 开始支持。