Это может быть действительно глупый вопрос, извините за это.
Я пытаюсь написать виртуальную клавиатуру в QML во встроенном Qt 4.8, мне нужно имитировать события нажатия клавиш для «Enter» и Клавиши "BackSpace". Я нашел несколько кодов, подобных следующему, которые создавали отправителя сигнала в С ++ для отправки события:
Q_INVOKABLE void keyPressed(QObject * rc,int k) {
QKeyEvent keyPressEvent = QKeyEvent(QEvent::KeyPress, k, Qt::NoModifier, QKeySequence(k).toString());
QCoreApplication::sendEvent(rc, &keyPressEvent);
}
Q_INVOKABLE void emitKey(Qt::Key key)
{
QQuickItem* receiver = qobject_cast<QQuickItem*>(QGui::focusObject());
if(!receiver) {
return;
}
QKeyEvent pressEvent = QKeyEvent(QEvent::KeyPress, key, Qt::NoModifier, QKeySequence(key).toString());
QKeyEvent releaseEvent = QKeyEvent(QEvent::KeyRelease, key, Qt::NoModifier);
QCoreApplication::sendEvent(receiver->focusWidget(), &pressEvent);
QCoreApplication::sendEvent(receiver->focusWidget(), &releaseEvent);
}
, но в первой функции я не знаю, как передать идентификатор получателя сфокусированного элемента, и во второй функции в моем Qt нет «QQuickItem».
Как мне передать или получить текущий сфокусированный элемент в qml или в cpp? При любом поиске я ничего не нашел ...