描述
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(): 清除当前的键序列。
示例
#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());
}
}
};
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
结果





![[微信小程序踩坑]微信小程序editor富文本组件渲染字符串时,内部图片超出大小导致无法正常渲染或回显(数据传输长度为 3458 KB,存在有性能问题!)](https://img-blog.csdnimg.cn/134b8fcf69fe439792743ce90b9ba99e.png)















