Как заставить андроид клавиатуру появляться при использовании Qt For Android?
Я создал минимальный рабочий пример поля ввода, которое я хотел бы разработать с использованием QGraphicsItem. Вот код (я думаю, что.h не обязательно):
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, у меня возникает проблема, что клавиатура не появляется, поэтому я не могу попробовать это. Как я могу заставить клавиатуру появляться?
1 ответ
Ну, если кому-то интересно, я нашел способ заставить андроид клавиатуру показывать.
QInputMethod *keyboard = QGuiApplication::inputMethod();
keyboard->show();
Я потерял код, в котором использовал его, поэтому не помню, можно ли вызывать QGuiApplication из любого места. Но если это невозможно, вы можете просто получить указатель на клавиатуру из основной формы / класса и передать его в качестве параметра для любого необходимого элемента или класса