Pergunta

Para meu aplicativo baseado em software livre, eu gostaria de ter um teclado virtual (Qt Empresa é uma provocação, mas de 200$< está além de minhas capacidades), então eu decidi escrever o meu próprio.Mas eu não sabia ao certo como:

Aqui está como eu ver o código:

keypress.h

#ifndef KEYPRESS_H
#define KEYPRESS_H

#include <QObject>

class KeyPress : public QObject
{

    Q_OBJECT

public:
    explicit KeyPress(QObject *parent = 0);

    Q_INVOKABLE void virtKeyPress(const int& Char);

signals:
    void virtKeyPressed(const int& source);

private:
    int vKey;
};

#endif // KEYPRESS_H

keypress.cpp

#include "keypress.h"
#include <QKeyEvent>

KeyPress::KeyPress(QObject *parent) :
    QObject(parent)
{

}

void KeyPress::virtKeyPress(const int &Char){

    vKey = Char;
    QKeyEvent event(QEvent::KeyPress, vKey, Qt::NoModifier);
    // Here I guess I should do somthing like "sendEvent(parent, &event);" or whatever, but nothing seems to work.
    emit virtKeyPressed(vKey);


}

Eu tenho algumas idéias sobre como inplement isso em apenas software livre, mas onde está a diversão nisso.:) Então, eu gostaria de pedir a sua orientação sobre o assunto.Btw, eu procurei através de informações na web, mas nenhum código de trabalho encontradas.

Foi útil?

Solução

O envio de um evento-chave para um Qt Quick objeto é semelhante a :

QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
QCoreApplication::postEvent (engine->rootObjects().first(), event);

Você também pode dar uma olhada em O Painel De Entrada Do Exemplo.Ele mostra como o texto de entrada em elementos através de um painel de entrada usando apenas o ponteiro e sem teclado.

O outro é um VirtualKeyboard.Ver o código fonte e alterá-lo para atender às suas necessidades.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top