2017-07-07 4 views
0

Ich versuche, die qt virtuelle Tastatur auf einem Raspberry Pi zu verwenden und habe Probleme beim Beschwören der Tastatur.qt virtuelle Tastatur nicht angezeigt

Ich habe das Projekt konfiguriert ist, wie für die Nutzung der virtuellen Tastatur zu ermöglichen, folgt:

//In the PRO file 
QT += qml quick quickcontrols2 xml 
static { 
    QT += svg 
    QTPLUGIN += qtvirtualkeyboardplugin 
} 

CONFIG += c++11 disable-desktop 

ich denke, die disable-desktop genug sein sollte, um die virtuelle Tastatur zu rufen, dass zumindest meine Vermutung ist.

Die erste Zeile in meiner main Datei ist:

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 

Dies stellt sicher, dass das Modul geladen wird. Ich habe überprüft, dass ohne diese Zeile, die Programmleiste mit dem virtuellen Tastaturmodul nicht gefunden Fehler.

Nun, ich habe eine einfache Komponente, die ein Textfeld hat als:

import QtQuick 2.0 
import QtQuick.Layouts 1.3 
import QtQuick.Controls 2.1 
import QtQuick.VirtualKeyboard 2.1 

TextField { 
      id: idField 
      width: 80 
      height: 30 
      placeholderText: qsTr("ID") 
      Layout.maximumHeight: 30 
      Layout.minimumHeight: 30 
      Layout.minimumWidth: 80 
      Layout.maximumWidth: 80 
      focus: true 
      anchors.horizontalCenter: parent.horizontalCenter 
      inputMethodHints: Qt.ImhDigitsOnly 
     } 

Wenn ich darauf klicke, die Tastatur nicht angezeigt. Ich frage mich, ob es zusätzliche Einstellungen gibt, die ich tun muss, um die Tastatur zu rufen?

Antwort

3

disable-desktop sollte als Argument an qmake vor dem Bau Qt virtuelle Tastatur, nicht die Anwendung, die die Tastatur verwendet geben werden:

qmake CONFIG+=disable-desktop qtvirtualkeyboard.pro 

Aber ich denke, dass this code dass automatisch für eingebettete Geräte behandeln würde (was bedeutet, dass ein vorgefertigtes/gepacktes Qt sollte funktionieren).

Wenn disable-desktop verwenden, ist es an Ihnen, das zu schaffen, InputPanel:

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.VirtualKeyboard 2.0 

ApplicationWindow { 
    id: window 
    visible: true 
    width: 640 
    height: 480 

    TextField { 
     anchors.centerIn: parent 
    } 

    InputPanel { 
     id: inputPanel 
     z: 89 
     y: active ? parent.height - height : parent.height 
     anchors.left: parent.left 
     anchors.right: parent.right 
    } 
} 

Es gibt einen fortgeschritteneren Beispiel dieser here. This Teil der Dokumentation erwähnt sie, und im nächsten Kapitel hat auch ein Beispiel:

Im Anwendungsintegrationsverfahren wird die Anwendung erforderlich ist, eine Instanz von Inputpanel zu erzeugen, wie im folgenden Abschnitt erläuterte.

+0

Ich habe versucht die qt Beispiele auf dem gleichen Gerät mit der virtuellen Tastatur und sie scheinen zu arbeiten, so klar ist die Tastatur richtig gebaut. –

+1

Ich habe eine ziemlich wichtige Sache vergessen ..: D – Mitch

+0

Yup, das war es. Ich habe komplett übersehen, dass das InputPanel bereitgestellt werden muss. –

Verwandte Themen