56 lines
1.3 KiB
C++
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
|