Gebäude Qt Virtual Keyboard
Übersicht
Dieses Dokument beschreibt, wie man das Qt Virtual Keyboard Plugin erstellt.
Das Projekt ist in die folgenden Unterprojekte aufgeteilt:
examples/virtualkeyboard/basic | Qt Virtual Keyboard Demo-Anwendung |
src/Komponenten/ | Qt Virtual Keyboard Komponenten QML-Plugin (QtQuick.VirtualKeyboard.Komponenten) |
src/plugin/ | Qt Virtual Keyboard Plattform-Eingabekontext-Plugin. Dieses Plugin stellt die QPlatformInputContext-Schnittstelle bereit und arbeitet als Schicht zwischen QML-Eingabekontext und Plattform. |
src/plugins/ | Ein Verzeichnis, das Qt Virtual Keyboard Plugins (QtQuick.VirtualKeyboard.Plugins) enthält, die komplexe Eingabemethoden, wie die HunspellInputMethod, implementieren. Die Konfiguration zur Erstellungszeit gibt an, welche Plugins zur Laufzeit erstellt und geladen werden. |
src/settings/ | Qt Virtual Keyboard Einstellungen QML-Plugin (QtQuick.VirtualKeyboard.Einstellungen). Dieses Plugin bietet anwendungskonfigurierbare Einstellungen für die virtuelle Tastatur. |
src/styles/ | Qt Virtual Keyboard Styles QML-Plugin (QtQuick.VirtualKeyboard.Styles). |
src/virtuelleTastatur/ | Qt Virtual Keyboard Modul und QML-Plugin. |
Konfigurationsoptionen
Die folgende Tabelle enthält die wichtigsten Optionen für die Konfiguration der Funktionen der virtuellen Tastatur. Diese Optionen werden an das Konfigurationswerkzeug übergeben.
Option | Argumente | Beschreibung | Bemerkungen |
---|---|---|---|
-vkb-enable <code>[,<code>]*" | Unterstützte Sprachcodes oder 'alle' | Aktiviert die angegebene Sprache | Mit dieser Option können die angegebenen Sprachen explizit aktiviert werden. Jeder Sprachcode hat das Format language[_country], wobei:
Diese Option kann verwendet werden, um die Sprachunterstützung nach Bedarf zu definieren. Die virtuelle Tastatur kann eine oder mehrere Sprachen auf einmal unterstützen. Mit Die virtuelle Tastatur umfasst automatisch alle unterstützten Sprachen, wenn keine anderen Sprachen angegeben werden. |
-vkb-handwriting | [no|example-hwr|myscript-hwr|cerence-hwr] | Aktiviert oder deaktiviert die Handschrifteingabe | Dieses Flag aktiviert die Handschrifteingabe. Standardmäßig wird die Engine automatisch aktiviert, wenn sie sich im richtigen Plugins-Ordner befindet, auch ohne Verwendung dieser Option. Falls jedoch MyScript und Cerence SDK nebeneinander existieren, muss eine der Optionen [no|myscript-hwr|cerence-hwr] konfiguriert werden. Die Option example-hwr muss explizit aktiviert werden. Dies kann für Entwicklungs- und Testzwecke erfolgen. |
[-no]-vkb-pfeil-tastennavigation | Aktiviert oder deaktiviert die Pfeiltastennavigation für die Tastatur | Ermöglicht die Steuerung der Tastatur über die Pfeil- und Return-Tasten. Diese Funktion ist standardmäßig ausgeschaltet. | |
-vkb-style | [Standard|Retro] | Wählen Sie den Stil der virtuellen Tastatur | Die Qt Virtual Keyboard unterstützt zwei Stile, Standard und Retro. Beide Stile sind im Paket enthalten, aber diese Option erlaubt es Ihnen, den eingebauten Standardstil zu ändern. |
[-no]-vkb-cangjie | Aktiviert oder deaktiviert die Cangjie-Eingabemethode für traditionelles Chinesisch. | Diese Option aktiviert bzw. deaktiviert die Cangjie-Eingabemethode für die Sprache Traditionelles Chinesisch. Die Eingabemethode ist standardmäßig aktiviert, wenn die Unterstützung für traditionelles Chinesisch aktiviert ist. | |
[-no]-vkb-zhuyin | Aktiviert oder deaktiviert die Zhuyin-Eingabemethode für traditionelles Chinesisch. | Diese Option aktiviert oder deaktiviert die Zhuyin-Eingabemethode für die Sprache Traditionelles Chinesisch. Die Eingabemethode ist standardmäßig aktiviert, wenn die Unterstützung für traditionelles Chinesisch aktiviert ist. | |
[-no]-vkb-desktop | Aktiviert oder deaktiviert die Desktop-Integration | Standardmäßig ist die Desktop-Integration aktiviert, wenn die Zielumgebung X11 oder Windows-Desktop ist. Mit dieser Option kann die Desktop-Integration deaktiviert werden. Hinweis: Für die eingebettete Integration, bei der die InputPanel von der Anwendung sofort aktiviert wird, muss diese Option nicht explizit verwendet werden. Die virtuelle Tastatur wird das Desktop-Eingabefeld nicht erstellen, wenn die Anwendung InputPanel erstellt, bevor der Fokus auf ein Eingabefeld gesetzt wird. | |
[-no]-vkb-layouts | Aktiviert oder deaktiviert die eingebauten Layouts | Standardmäßig enthält das virtuelle Tastatur-Plugin das englische Tastaturlayout. Durch die Angabe von -no-vkb-layouts werden die eingebauten Layouts aus dem virtuellen Tastatur-Plugin ausgeschlossen. Hinweis: In diesem Szenario sollte die Umgebungsvariable | |
-vkb-hunspell | [no|3rdparty|system] | Hunspell-Integration wählen | Erzwingt die Hunspell-Integrationsmethode mit der angegebenen Option. Die Option 3rdparty wählt die lokale Erstellung des Hunspell-Quellcodes unter Verwendung der Projektdateien im virtuellen Tastatur-Repository. Diese Option setzt voraus, dass das Hunspell-Git-Repository in das Verzeichnis src/plugins/hunspell/3rdparty/hunspell geklont wurde. Die Option system wählt das Systempaket über pkg-config aus. Die Option no deaktiviert das Hunspell-Plugin. |
-vkb-no-bundle-pinyin | nicht vorhanden | Deaktiviert die Bündelung von Pinyin-Ressourcen | Diese Option schließt Pinyin-Ressourcen aus der Plugin-Binärdatei aus. Diese Option kann verwendet werden, um die Größe der Plugin-Binärdatei zu reduzieren. |
-vkb-no-bundle-tcime | nicht vorhanden | Deaktiviert die Bündelung von tcime-Ressourcen | Diese Option schließt tcime-Ressourcen aus der Plugin-Binärdatei aus. Diese Option kann verwendet werden, um die Größe der Plugin-Binärdatei zu reduzieren. |
-vkb-cerence-sdk | Pfad/zu/cerence/sdk | Konfiguriert den Speicherort des Cerence SDK und aktiviert die Cerence Handwriting- und XT9-Integrationen. | Die Cerence SDK-Zip-Datei muss mit dem Skript src/plugins/cerence/unpack.py entpackt werden. Standardmäßig wird das SDK nach src/plugins/cerence/sdk entpackt, wo es von den Build-Skripten automatisch übernommen werden kann. Durch die Verwendung des zweiten Parameters im Skript unpack.py ist es jedoch möglich, einen anderen Speicherort für das SDK zu verwenden. In diesem Fall muss der Speicherort mit dem Befehlszeilenparameter -vkb-cerence-sdk an das Build-Skript übergeben werden. |
-vkb-cerence-static | Handschrift | Aktiviert das statische Linken der Cerence Handwriting Engine. | Die Cerence Handwriting Engine ist standardmäßig dynamisch gelinkt. Verwenden Sie -vkb-cerence-static, um eine statische Verknüpfung zu erzwingen. |
-vkb-bundle-cerence-hwr oder -vkb-bundle-cerence | k.A. | Aktiviert die Bündelung von Cerence Handwriting-Ressourcen | Diese Option bündelt die Cerence Handwriting-Ressourcen in der Plugin-Binärdatei. |
-vkb-bundle-xt9 oder -vkb-bundle-cerence | nicht vorhanden | Aktiviert die Bündelung von XT9-Ressourcen | Diese Option bündelt die XT9-Ressourcen in der Plugin-Binärdatei. |
-vkb-myscript-sdk | Pfad/zu/myscript/sdk | Konfiguriert den Speicherort des MyScript Text SDK und aktiviert die Integration von MyScript Handwriting. | Das MyScript Text SDK (zip), das nach src/plugins/myscript/sdk entpackt wird, kann von den Build-Skripten automatisch abgeholt werden. Das SDK kann jedoch auch an einem anderen Ort abgelegt werden. In diesem Fall muss der Speicherort mit dem Befehlszeilenparameter -vkb-myscript-sdk an das Build-Skript übergeben werden. |
-vkb-myscript-arch | [x86|x64|armv7hf|armv7|arm64] | Konfiguriert die Ziel-CPU-Architektur | Das MyScript Text SDK bietet gemeinsame (dynamische) Bibliotheken für verschiedene CPU-Architekturen - [x86|x64|armv7hf|armv7|arm64] für Linux und [x86|x64] für Windows. Sie kann automatisch konfiguriert werden. Der Benutzer kann jedoch auch die Ziel-CPU-Architektur mit dem Befehlszeilenparameter -vkb-myscript-arch angeben. |
Hunspell-Integration
Standardmäßig ist HunspellInputMethod nur verfügbar, wenn die Hunspell-Bibliothek und die Entwicklungsheader gefunden werden. Für Linux/X11-Ziele kann die Hunspell-Bibliothek durch die Installation des Pakets libhunspell-dev bereitgestellt werden. Alternativ kann das Hunspell-Git-Repository in das Verzeichnis src/plugins/hunspell/3rdparty/hunspell geklont werden. Die Quellen werden automatisch von qmake erkannt und das Projekt wird so konfiguriert, dass es das lokale Hunspell verwendet. Wenn Hunspell-Quellen verwendet werden, müssen auch die Wörterbuchdateien in das Verzeichnis src/plugins/hunspell/3rdparty/hunspell/data kopiert werden.
Ein Beispiel dafür, wie die Verzeichnisstruktur nach dem Einrichten der Hunspell-Quellen und der Wörterbuchdateien aussehen sollte, ist unten aufgeführt:
3rdparty └── hunspell ├── data │ ├── en_GB.aff │ └── en_GB.dic ├── hunspell <-- Hunspell git repository └── CMakeLists.txt
Cerence Handwriting-Integration
Die Cerence Handwriting Integration unterstützt die Alphabetic und CJK (Chinese Japanese Korean) Engines. Beide Engines werden über T9WriteInputMethod integriert. Die Eingabemethode wird jeweils mit einer Engine initialisiert. Die Auswahl der Engine erfolgt automatisch auf der Grundlage des aktuellen Eingabegebietsschemas.
Cerence Handwriting Kompatibilität
Qt Virtual Keyboard ist kompatibel mit Cerence Handwriting v8.7 oder höher.
Cerence Handwriting Build-Vorbereitungen
Der Inhalt des SDK muss mit Hilfe des Skripts unpack.py entpackt werden, das sich im cerence-Verzeichnis befindet. Dadurch wird die korrekte Verzeichnisstruktur sichergestellt, damit CMake den Inhalt finden kann.
$ cd src/plugins/cerence/ $ python unpack.py filename.zip
Dadurch wird der Inhalt in das Verzeichnis src/plugins/cerence/sdk entpackt, wo CMake ihn automatisch auffinden kann.
Alternativ können Sie auch in ein beliebiges anderes Verzeichnis entpacken, indem Sie einen zusätzlichen Parameter in der Befehlszeile angeben. In diesem Fall muss der Speicherort des SDKs an das configure-Skript übergeben werden.
configure ... -vkb-cerence-sdk /path/to/cerence/sdk
Aufbau des Cerence SDK
Der entpackte Inhalt des SDKs sieht wie folgt aus:
sdk ├───t9write │ ├───api │ ├───data │ │ ├───arabic │ │ ├───hebrew │ │ └───thai │ └───lib │ ├───linux │ │ ├───arm64 │ │ │ ├───shared │ │ │ │ ├───alphabetic │ │ │ │ └───cjk │ │ │ └───static │ │ │ ├───alphabetic │ │ │ └───cjk │ │ └───x86_64 │ │ ├───shared │ │ │ ├───alphabetic │ │ │ └───cjk │ │ └───static │ │ ├───alphabetic │ │ └───cjk │ └───win32 │ ├───x86 │ │ ├───shared │ │ │ ├───alphabetic │ │ │ └───cjk │ │ └───static │ │ ├───alphabetic │ │ └───cjk │ └───x86_64 │ ├───shared │ │ ├───alphabetic │ │ └───cjk │ └───static │ ├───alphabetic │ └───cjk └───xt9 ├───api ├───data └───lib ├───linux │ ├───arm64 │ │ ├───shared │ │ └───static │ └───x86_64 │ ├───shared │ └───static └───win32 ├───x86 │ ├───shared │ └───static └───x86_64 ├───shared └───static
Wo die Inhalte der einzelnen Verzeichnisse sind:
Verzeichnis | Beschreibung | Bemerkungen |
---|---|---|
api | Dieses Verzeichnis sollte alle API-Dateien enthalten | Die API-Dateien befinden sich normalerweise in den Verzeichnissen "api" und "public" des SDK, manchmal aber auch im Verzeichnis "demo". Wenn die Alphabetic- und die CJK-Engine gleichzeitig verwendet werden, können alle sich überschneidenden Dateien aus beiden SDKs kopiert werden. |
Daten | Dieses Verzeichnis sollte alle HWR-Datenbanken und optional XT9-Datenbanken enthalten. | HWR-Datenbank für die Cerence Handwriting Alphabetic:
HWR-Datenbank für die Cerence Handschrift CJK:
Sprachdatenbank:
|
lib/<Ziel>/<Linkage>/<Motor-Variante> | Verzeichnisstruktur mit unterstützten Ziel-Builds. | Diese Verzeichnisse sollten die gewünschten Zielbibliotheken enthalten. Wenn sowohl shared als auch statische Bibliotheken gefunden werden, werden die shared Bibliotheken bevorzugt. |
Der Cerence Handwriting- und XT9-Integrationscode wird automatisch aktiviert, wenn das Cerence SDK erkannt wird.
Alle anderen Erweiterungen sollten aus dem Verzeichnis [qtbase]/plugins/virtualkeyboard entfernt werden, bevor die Cerence-Erweiterungen erstellt werden, um ein widersprüchliches Verhalten zur Laufzeit zu vermeiden. Die Cerence-Erweiterungen benötigen keine anderen virtuellen Tastatur-Plugins, um zu funktionieren.
Handschriftdatenbanken und Sprachdatenbanken für XT9 werden im Verzeichnis [qtbase]/qtvirtualkeyboard/cerence installiert. Darüber hinaus gibt es zwei weitere Alternativen für das Auffinden dieser Dateien:
- Ein benutzerdefinierter Speicherort zur Laufzeit, der durch Umgebungsvariablen definiert wird
- Die Befehlszeilenoption -vkb-bundle-cerence zum Einbetten von Ressourcen in die Plugin-Binärdateien
MyScript Text SDK-Integration
MyScript Text wurde für die Erstellung von Anwendungen entwickelt, die die Erkennung von handgeschriebenem Text ermöglichen. MyScript Text unterstützt die Erkennung von isolierten Zeichen, kursiver Schrift, Druckschrift und überlagerter Schrift. MyScript Superimposed Writing ist in Qt Virtual Keyboard integriert. Es ermöglicht die Erkennung von Buchstaben, Wörtern oder Wortteilen, die übereinander geschrieben werden, ohne dass eine explizite Trennung zwischen aufeinanderfolgenden Fragmenten erfolgt. Es ist in der Lage, auf Geräten mit begrenztem Speicher und begrenzter CPU zu laufen.
Eingabe-Handschriftstile von MyScript Text SDK
Der Endbenutzer kann ein Wortfragment über ein anderes oder ein Zeichen über ein anderes schreiben, wie unten dargestellt. Leerzeichen zwischen zwei geschriebenen Wörtern werden automatisch hinzugefügt, so dass keine explizite Geste erforderlich ist.
Sprachabdeckung von MyScript Text SDK
MyScript Superimposed unterstützt 72 Sprachen.
MyScript Text SDK-Pakete Installation
Das MyScript-Lieferungsteam kann Ihnen die Pakete mit verschiedenen .zip
Archiven zur Verfügung stellen. Um auf den gesamten Code, die Tools und die Ressourcen zuzugreifen, die Sie für die Erstellung Ihrer eigenen Handschriftanwendung benötigen, extrahieren Sie alle Pakete in denselben Zielordner wie src/plugins/myscript/sdk
, wo CMake sie automatisch aufnimmt.
Alternativ können Sie die Pakete auch in ein beliebiges anderes Verzeichnis entpacken. In diesem Fall muss der Ort des SDKs an das configure-Skript übergeben werden.
configure ... -vkb-myscript-sdk /path/to/myscript/sdk
Die Dateihierarchie sollte wie unten dargestellt aussehen:
myscript └── sdk ├─── conf ├─── doc ├─── edk ├─── engine │ └─── bin │ ├─── lin-arm64 │ │ └─── *.so │ ├─── lin-armv7 │ │ └─── *.so │ ├─── lin-armv7hf │ │ └─── *.so │ ├─── lin-x64 │ │ └─── *.so │ ├─── lin-x86 │ │ └─── *.so │ ├─── win-x64 │ │ └─── *.dll │ ├─── win-x86 │ │ └─── *.dll │ (etc.) ├─── rdk ├─── resources │ ├─── ar │ │ └─── *.res │ ├─── en_GB │ │ └─── *.res │ ├─── ja_JP │ │ └─── *.res │ ├─── ko_KR │ │ └─── *.res │ ├─── zh_CN │ │ └─── *.res │ (etc.) ├─── tools └─── voim ├─── api ├─── bin │ ├─── lin-arm64 │ │ └─── *.so │ ├─── lin-armv7 │ │ └─── *.so │ ├─── lin-armv7hf │ │ └─── *.so │ ├─── lin-x64 │ │ └─── *.so │ ├─── lin-x86 │ │ └─── *.so │ ├─── win-x64 │ │ └─── *.dll │ ├─── win-x86 │ │ └─── *.dll │ (etc.) └─── conf
Die Beschreibung für den Inhalt der einzelnen Verzeichnisse sind:
Verzeichnis | Beschreibung |
---|---|
conf | Enthält die Sprachkonfigurationsdateien, die die Engine zur Konfiguration der Sprachressourcen verwendet. |
doc | Enthält die HTML-Dokumentationsdateien. Die Datei index.html zeigt die Hauptseite an. |
edk | Enthält das Engine Development Kit und handschriftliche Programmierelemente für jede unterstützte Programmiersprachen-API, einschließlich Codebeispiele. |
engine | Enthält die Bibliotheken der einzelnen Engine-Objekte, je nach Zielplattform als SO, A oder DLL. |
rdk | Enthält das Resource Development Kit, d.h. Werkzeuge und Beispiele für die Erstellung eigener Ressourcen. |
ressourcen | Enthält Ressourcendateien mit der Erweiterung /c .res. Es handelt sich um binäre Assets, die zur Laufzeit von den verschiedenen MyScript-Technologien verwendet werden, um die verschiedenen Erkennungsaufgaben zu erfüllen. |
Werkzeuge | Enthält nützliche Werkzeuge für Programmierer, darunter InkTool zum Testen von Tinte. |
voim | Enthält Bibliotheken für die MyScript-Texteingabemethode. Es ist ein Erweiterungs-SDK für das MyScript-Texterkennungssystem und wurde entwickelt, um Eingabemethoden mit Handschrifterkennung einfach und schnell zu erstellen. |
Einstellen des Zertifikats von MyScript Text SDK
Für die Verwendung des MyScript Text SDK ist ein gültiges Zertifikat erforderlich. Dies ist eine Sicherheitsmaßnahme, die Sie eindeutig als legitimen Kunden von MyScript-Technologien identifiziert. Das Zertifikat hilft MyScript dabei, die Identität der Kunden und die gekauften Produkte nachzuvollziehen.
Das Zertifikat wird im Paket [your_login].vo.zip package
geliefert. Wenn Sie dieses Paket entpacken, wird das Zertifikat automatisch an der entsprechenden Stelle abgelegt. Dadurch wird sichergestellt, dass das Zertifikat sofort mit den Services und Codebeispielen funktioniert, die Sie erhalten haben.
So erstellen Sie Qt Virtual Keyboard mit MyScript Text SDK
Der MyScript-Integrationscode wird automatisch aktiviert, wenn das MyScript Text SDK erkannt wird.
Die Sprachressourcen für MyScript Text SDK werden im Verzeichnis [qtbase]/qtvirtualkeyboard/myscript installiert.
Statische Builds
Die virtuelle Tastatur kann statisch gebaut und mit der Anwendung verknüpft werden. Dies impliziert, dass Qt ebenfalls statisch gebaut wird (mit der Option -static in der Befehlszeile von configure).
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.