2016-09-11 1 views
0

Я создал минимальный рабочий пример окна ввода, который я хотел бы разработать, используя QGraphicsItem. Вот код (я фигура .h не обязательно):Как заставить клавиатуру Android появляться при использовании Qt для Android?

TestEditor::TestEditor() 
{ 
    text = ""; 
    boundingBox = QRectF(0,0,200,100); 
} 

QRectF TestEditor::boundingRect() const{ 
    return boundingBox; 
} 

void TestEditor::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){ 

    painter->setBrush(QBrush(Qt::gray)); 
    painter->drawRect(boundingBox); 
    painter->setBrush(QBrush(Qt::black)); 
    painter->drawText(boundingBox,text); 

} 

void TestEditor::keyReleaseEvent(QKeyEvent *event){ 
    qDebug() << "Aca toy"; 
    text = text + event->text(); 
    update(); 
} 

Мой тестер приложение просто добавить его в графике просмотра, чтобы проверить:

TestEditor *editor = new TestEditor(); 
    editor->setText("Algo de texto como para empezar"); 
    editor->setFlag(QGraphicsItem::ItemAcceptsInputMethod,true); 
    editor->setFlag(QGraphicsItem::ItemIsFocusable,true); 
    editor->setFlag(QGraphicsItem::ItemIsSelectable,true); 
    ui->gvScreen->scene()->addItem(editor); 

Когда я проверить это на моем ПК он отлично работает. Когда я скомпилирую его для android, я получаю проблему, что клавиатура не появляется, поэтому я не могу ее пробовать. Как заставить клавиатуру появиться?

ответ

0

Хорошо В случае, если кто-то задается вопросом, я нашел способ заставить клавиатуру Android показать.

QInputMethod *keyboard = QGuiApplication::inputMethod(); 
keyboard->show(); 

Я потерял код, где я использовал его, поэтому я не rembember если QGuiApplication может быть вызван из любого места. Но если это невозможно, вы можете просто указать указатель на клавиатуру из вашей основной формы/класса и передать ее в качестве параметра любому требуемому элементу или классу

Смежные вопросы