linuxOS_D21X/source/artinchip/qtlauncher/keyboard/AbstractKeyboard.h
2025-06-05 14:33:02 +08:00

56 lines
1.3 KiB
C++

/**********************************************************
#Author: Qtjun
#WeChat Official Accounts: qthub_com
#QQ Group: 732271126
#Email: 2088201923@qq.com
**********************************************************/
#ifndef AEA_ABSTRACT_KEYBOARD_H
#define AEA_ABSTRACT_KEYBOARD_H
#include <QApplication>
#include <QWidget>
#include <QDebug>
#include <QKeyEvent>
namespace AeaQt {
class AbstractKeyboard : public QWidget
{
Q_OBJECT
public:
AbstractKeyboard(QWidget *parent = 0) : QWidget(parent) {
}
~AbstractKeyboard() { }
const QString name() { return m_name; }
void setName(const QString &name) { m_name = name; }
public slots:
virtual void update(const QString &text) { Q_UNUSED(text); }
void onKeyPressed(int key, QString value)
{
qDebug() << "key: " << key << "Value: " << value;
QWidget *receiver = QApplication::focusWidget();
if (!receiver)
return;
QKeyEvent keyPress(QEvent::KeyPress, key, Qt::NoModifier, value);
QKeyEvent keyRelease(QEvent::KeyRelease, key, Qt::NoModifier, value);
QApplication::sendEvent(receiver, &keyPress);
QApplication::sendEvent(receiver, &keyRelease);
}
signals:
void keyPressed(int key, QString value);
private:
QString m_name;
};
}
#endif // AEA_ABSTRACT_KEYBOARD_H