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();
    }

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

相关推荐
「QT(C++)开发工程师」1 小时前
VTK开源视觉库 | 行业应用第一篇
linux·qt·物联网·计算机视觉·信息可视化·vtk
weixin_467209284 小时前
Qt Creator打开项目提示no valid settings file could be found
开发语言·qt
合作小小程序员小小店5 小时前
舆情,情感微博系统demo,基于python+qt+nlp,开发语言python,界面库qt,无数据库版,数据来自第三方网站获取,
开发语言·pytorch·qt·自然语言处理·nlp
Larry_Yanan6 小时前
QML学习笔记(四十八)QML与C++交互:QML中可实例化C++对象
c++·笔记·qt·学习·ui·交互
伐尘10 小时前
【Qt】实现单例程序,禁止程序多开的几种方式
qt
2501_9387802819 小时前
《轨道交通检测系统中 Qt 与数据库交互的优化方案》
数据库·qt·交互
非得登录才能看吗?19 小时前
Qt 外观之Qt样式表(QSS)
qt
LNN202220 小时前
Qt creator +Valgrind检测内存泄漏(linux)
linux·开发语言·qt
奔跑吧 android1 天前
【Docker】【03.使用docker搭建ubuntu20.04 Qt5.12 开发环境】
qt·docker·ubuntu20.04·qt5.12
扶尔魔ocy1 天前
【QT常用技术讲解】可拖拽文件的Widget--QListWidget
开发语言·qt