qt QKeySequence详解

news/2024/11/14 12:30:28/
1、概述

QKeySequence 是 Qt 框架中的一个类,用于表示和处理键盘快捷键序列。它提供了一种方便的方式来解析、存储和比较键盘快捷键,这些快捷键通常用于触发应用程序中的特定操作或命令。QKeySequence 支持多种格式的快捷键表示,包括单个按键、按键组合以及由多个按键组成的序列。

2、重要方法

QKeySequence 类提供了多种方法来操作键盘快捷键序列,以下是一些重要的方法:

  • QKeySequence():构造函数,用于创建一个空的快捷键序列。
  • QKeySequence(const QString &key):根据提供的字符串创建一个快捷键序列。字符串可以是单个按键名称(如 "Ctrl+C"),也可以是多个按键名称的组合。
  • fromString(const QString &str, SequenceFormat format = PortableText):静态方法,用于从字符串中解析出快捷键序列。SequenceFormat 参数指定了字符串的格式。
  • toString(SequenceFormat format = PortableText):将快捷键序列转换为字符串表示。
  • matches(const QKeySequence &seq):检查当前快捷键序列是否与另一个快捷键序列匹配。
  • count():返回快捷键序列中按键的数量。

3、常用枚举类型

SequenceFormat:

  • QKeySequence::NativeText:本地化文本格式。
  • QKeySequence::PortableText:便携文本格式。

StandardKey:

  • QKeySequence::copy:复制快捷键,通常为Ctrl+C。
  • QKeySequence::Paste:粘贴快捷键,通常为Ctrl+V。
  • QKeySequence::Undo:撤销快捷键,通常为Ctrl+Z。
  • QKeySequence::Redo:重做快捷键,通常为Ctrl+Y。
  • QKeySequence::Cut:剪切快捷键,通常为Ctrl+X。
#include <QApplication>
#include <QMainWindow>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QMessageBox>
#include <QKeySequence>class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {QMenuBar *menuBar = new QMenuBar(this);QMenu *fileMenu = menuBar->addMenu(tr("&File"));QAction *newAction = new QAction(tr("&New"), this);newAction->setShortcut(QKeySequence("Ctrl+N")); // 设置快捷键序列connect(newAction, &QAction::triggered, this, &MainWindow::onNewTriggered);fileMenu->addAction(newAction);setMenuBar(menuBar);}private slots:void onNewTriggered() {QMessageBox::information(this, tr("Action Triggered"), tr("The 'New' action was triggered by a shortcut."));}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);MainWindow window;window.show();return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           


http://www.ppmy.cn/news/1546624.html

相关文章

6.2 对角化矩阵(2)

五、不能对角化的矩阵 假设 λ \lambda λ 是 A A A 的一个特征值&#xff0c;我们从两个方面发现这个事实&#xff1a; 特征向量&#xff08;几何的&#xff09;&#xff1a; A x λ x A\boldsymbol x\lambda\boldsymbol x Axλx 有非零解。特征值&#xff08;代数的&…

20241112-Pycharm使用托管的Anaconda的Jupyter Notebook

Pycharm使用托管的Anaconda的Jupyter Notebook 要求 不要每次使用 Pycharm 运行 Jupyter 文件时都要手动打开 Anaconda 的 Jupyter Notebook 正文 pycharm中配置好会自动安装的&#xff0c;有的要自己配置 Pycharm中配置 文件 ——> 设置 ——> 语言和框架……&am…

解决全局安装@vue/cli 后vue -V不是内部或外部命令

大家好&#xff0c;我是苏麟。 全局安装 vue cli 命令 yarn global add vue/cli 或者 npm install -g vue/cli 安装完 查看 版本 出错 找到node 选择这两个文件 复制到 node 下 找到 vue 复制到 node_modules 下 成功

vue3+vite+ts中如何动态使用import.meta.env中的变量

文章目录 1.使用场景2. 使用插件的方式1. 创建一个插件文件,根目录plugins/import-meta-env.d.ts2. 在vite.config.ts中引入3. 使用 1.使用场景 不想在使用import.meta.env的时候,还去找到变量文件去看 2. 使用插件的方式 1. 创建一个插件文件,根目录plugins/import-meta-env.…

记录 IDEA 搜索不到插件: marketplace plugins are not loaded

使用 IDEA 插件商店时, 一直加载不出来 提示: marketplace plugins are not loaded 按照网上提示, 使用代理, 依旧无法加载 最终解决方案 idea访问时, 被防火墙拦截 允许应用通过防火墙即可 全勾上即可 说明 文章转发自 博主尘下吹霜的记录 IDEA 搜索不到插件: marketplace…

前端监控与埋点 全总结

一、概念 前端埋点是指在网页或者应用程序中插入特定的代码&#xff0c;用于收集用户的行为数据并发送给服务器进行分析。这些数据可以包括用户的点击、浏览、输入等操作&#xff0c;帮助开发者了解用户的在其网站中的行为&#xff0c;从而进行针对性的优化和改进。 前端埋点…

go do sth和come do sth的区别

"Come do something" 语法结构 结构&#xff1a;主语 come 动词原形 其他成分。 用法&#xff1a;表示某人来到说话者的位置或某个地方&#xff0c;然后做某事。例句 Come play with us.&#xff08;过来和我们一起玩。&#xff09; Come help me with this.&…

HTTP 客户端怎么向 Spring Cloud Sleuth 传输跟踪 ID

在 Spring Cloud Sleuth 的请求链路追踪中&#xff0c;X-B3-TraceId 是第二个 ID&#xff0c;X-B3-SpanId 是第三个 ID。以下是 Sleuth 中各个追踪标识的含义&#xff1a; X-B3-TraceId&#xff1a;表示整个请求链路的全局唯一 ID&#xff0c;用于跟踪请求在多个服务间的流转。…