[solved] Can I fake a Keys.pressed signal?
-
Hi, I'm making a virtual keyboard, so far only QML. It would be easier to integrate it into my application if I could make its signals the same as the real keyboard. Is this possible in QML? If on Qt, is it too hard?
I want to be able to use a Keys.onPressed handler that deals with both the virtual and real keyboard, not create a different handler for each.
Thanks
edited: spell fixes.
-
In QML you can define signals like this:
@
Rectangle {
id: container
signal clicked
}@
or use already defined ones of courseYou can then emit the signal using:
@container.clicked();@So, if you have access to the keys, you can simply access .pressed() in your QML, for example. Or, if you don't have access, you can expose it with Qt (C++) and then use QML as per normal.
For an example of a QML Software keyboard, have a look at "Colibri CLKeyboard":https://projects.forum.nokia.com/colibri/wiki/CLKeyboard component.
!http://realnorth.net/share/ColibryKeyboardDemo.png(CLKeyboard Component)! -
If you mean you want to send key events from your virtual keyboard, which can then be received by Keys.onPressed, then that is quite easy to do from Qt/C++. For example,
@
QDeclarativeView view(QUrl::fromLocalFile("Window.qml"));QKeyEvent event(QEvent::KeyPress, Qt::Key_Down, Qt::NoModifier); view.scene()->sendEvent(view.rootObject(), &event);
@