对于我的基于 QML 的应用程序,我希望有一个虚拟键盘(Qt Enterprise 是个很有趣的东西,但 200 美元< 超出了我的能力),所以我决定编写自己的键盘。但我不太确定如何:
\n\n这是我看到代码的方式:
\n\n按键.h
\n\n#ifndef KEYPRESS_H\n#define KEYPRESS_H\n\n#include <QObject>\n\nclass KeyPress : public QObject\n{\n\n Q_OBJECT\n\npublic:\n explicit KeyPress(QObject *parent = 0);\n\n Q_INVOKABLE void virtKeyPress(const int& Char);\n\nsignals:\n void virtKeyPressed(const int& source);\n\nprivate:\n int vKey;\n};\n\n#endif // KEYPRESS_H\nRun Code Online (Sandbox Code Playgroud)\n\n按键.cpp
\n\n#include "keypress.h"\n#include <QKeyEvent>\n\nKeyPress::KeyPress(QObject *parent) :\n QObject(parent)\n{\n\n}\n\nvoid KeyPress::virtKeyPress(const int &Char){\n\n vKey = Char;\n QKeyEvent event(QEvent::KeyPress, vKey, Qt::NoModifier);\n // Here I guess I should do somthing like "sendEvent(parent, &event);" or whatever, but nothing seems to work.\n emit virtKeyPressed(vKey);\n\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n …