当前位置: 首页 > article >正文

qt QKeySequence详解

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_OBJECT

public:
    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.kler.cn/a/392520.html

相关文章:

  • 矢量拟合(1)Sanathanan–Koerner算法
  • 计算机毕业设计必看必学35755flask旅游景区热度可视化平台原创定制程序,java、PHP、python、小程序、文案全套、毕设成品等
  • 使用CubeMX一键配置Freertos
  • RT-DETR融合CVPR[2020]轻量化卷积模块Ghost Module模块
  • 【css】html里面的图片宽度设为百分比,高度要与宽度一样
  • EasyExcel 使用多线程按顺序导出数据
  • MFC图形函数学习08——绘图函数的重载介绍
  • 快速入门Zookeeper
  • 机器学习在医疗健康领域的应用
  • 【C++】类与对象的基础概念
  • Python网络爬虫与数据采集实战——什么是网络爬虫
  • PostgreSQL 锁判断
  • 继承和多态(上)
  • Kafka 之自定义消息拦截器【Kafka 拦截器】
  • 牛客小白月赛104-D小红开锁-模拟
  • Unity常见问题合集(一)
  • workerman的安装与使用
  • TCP/IP协议,TCP和UDP区别
  • L10.【LeetCode笔记】回文链表
  • QObject中QThreadData里面的postEventList和QObjectPrivate里面的postedEvents
  • caozha-comment(原生PHP评论系统)
  • 根据模型数据 处理流式数据 生成AI对话
  • [运维][Nginx]Nginx学习(1/5)--Nginx基础
  • QTableWidget的简单使用
  • Swift 开发教程系列 - 第11章:内存管理和 ARC(Automatic Reference Counting)
  • Redhat8.6安装MySQL8.0.31