2016-09-11 3 views
0

Ich habe ein minimales Arbeitsbeispiel für eine Eingabebox erstellt, die ich mit einem QGraphicsItem entwickeln möchte. Hier ist der Code (ich würde Figur die .h nicht notwendig ist):Wie wird die Android-Tastatur angezeigt, wenn Qt für Android verwendet wird?

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(); 
} 

Mein Tester Anwendung einfach ist es zu einem Hinzufügen von Grafiken anzuzeigen, es zu testen:

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); 

Wenn ich dies testen auf meinem PC funktioniert es gut. Wenn ich es für Android kompiliere, bekomme ich das Problem, dass die Tastatur nicht erscheint, also kann ich es nicht ausprobieren. Wie kann ich die Tastatur erzwingen?

Antwort

0

Nun Im Falle jemand fragt sich, ich habe einen Weg gefunden, um die Android-Tastatur zu zwingen, zu zeigen.

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

Ich habe den Code verloren, wo habe ich es, damit ich nicht rembember wenn QGuiApplication kann von überall aufgerufen werden. Aber wenn es nicht möglich ist, können Sie einfach den Zeiger auf die Tastatur von Ihrem Hauptformular/-klasse aus setzen und als Parameter an eine beliebige Art von erforderlichem Element oder Klasse

übergeben
Verwandte Themen