【Qt之控件QKeySequenceEdit】分析及使用

描述

QKeySequenceEdit小部件允许输入一个QKeySequence

该小部件允许用户选择一个QKeySequence,通常用作快捷键。当小部件获取焦点时,录制将开始,并在用户释放最后一个键后的一秒钟结束。

用户可以使用输入键盘来输入键序列。通过调用getKeySequence()函数可以获取当前输入的键序列,也可以使用setKeySequence()函数设置/更改键序列。

当键序列发生更改时,QKeySequenceEdit会发出keySequenceChanged()信号,可以连接到相应的槽函数进行处理。如果需要清除当前的键序列,可以调用clear()槽函数。

常用函数

  • QKeySequence getKeySequence() const: 获取当前输入的QKeySequence。
  • void setKeySequence(const QKeySequence& keySequence): 设置QKeySequenceEdit的当前键序列。

信号

  • void keySequenceChanged(const QKeySequence& keySequence): 当键序列发生更改时发出的信号。
  • void editingFinished():当编辑结束时发送信号。

  • void clear(): 清除当前的键序列。

示例

cpp 复制代码
#include <QMainWindow>
#include <QKeySequenceEdit>
#include <QMessageBox>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr)
        : QMainWindow(parent)
    {
        QKeySequenceEdit *keySequenceEdit = new QKeySequenceEdit(this);
        keySequenceEdit->setToolTip("Enter a single key sequence");

        connect(keySequenceEdit, &QKeySequenceEdit::keySequenceChanged, this, &MainWindow::handleKeySequenceChanged);

        setCentralWidget(keySequenceEdit);
    }

private slots:
    void handleKeySequenceChanged(const QKeySequence &keySequence)
    {
    	// 可以在此将快捷键绑定到某动作上
        if (keySequence.isEmpty())
        {
            QMessageBox::information(this, "Shortcut", "Please enter a shortcut.");
        }
        else if (keySequence.count() > 1)
        {
            QMessageBox::information(this, "Shortcut", "Please enter only one key sequence.");
        }
        else
        {
            QMessageBox::information(this, "Shortcut", "Shortcut changed to: " + keySequence.toString());
        }
    }
};
cpp 复制代码
#include <QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow w;
    w.show();

    return a.exec();
}

结果


相关推荐
灵析表格几秒前
灵析表格财务函数深度实用性分析与实操教程
开发语言·ai·json·excel·wps
LONGZETECH32 分钟前
无人机组装调试实训高损耗痛点分析与虚拟仿真教学落地方案
c语言·开发语言·架构·无人机
菜冻鱼44 分钟前
Python-sklearn-降维
开发语言·人工智能·python·机器学习·支持向量机·sklearn
luj_17681 小时前
大航海时代:沉浸式财商实战沙盒
c语言·开发语言·网络·经验分享·算法
赵广陆1 小时前
企业实战:Markdown图片检索
android·java·开发语言
C++、Java和Python的菜鸟1 小时前
第3章 从0开始用若依
java·开发语言
夜雪一千2 小时前
Python 如何实现 SHA 加密?SHA1 / SHA256 / SHA512 实战教程
开发语言·python
摸鱼停不住先生2 小时前
不安全反序列化利用篇(四):预构建 Gadget Chain——从反序列化检测到框架利用
开发语言·python·安全
有点。2 小时前
C++二叉树(一)
开发语言·数据结构·c++
民乐团扒谱机2 小时前
【微实验】谐波乘积谱(HPS)算法深度解析:原理、数学与代码实现
开发语言·人工智能·python·算法·语音识别·音乐