2016-11-01 20 views
1

私はpyqt5を使ってデスクトップアプリケーションを開発しています。私は、手書き認識機能を備えたバーチャルキーボードを使いたいと思っています。私は、Qt、QtVirtualKeyboardがすでにそれをサポートしているのを見ました。PyQt5/pyqt4は手書き認識機能付きのQtVirtualKeyboardをすでにサポートしていますか?

ここにはa link

enter image description here

私はQtCreator上で実行されているC++のQtのコード例を得ました。 しかしpython3.5とPyQt5を使用して、このメッセージを表示します。

module "QtQuick.VirtualKeyboard" is not installed 
import QtQuick.VirtualKeyboard 2.1 

は、どのように私はここから上に行くべきですか? PyQt5にはVirtualKeyboardモジュールが付属していますか? PyQt5にインストールする方法は?

答えて

2

私もこれで立ち往生されて、私はいくつか調査したQtの に新しいですし、ソースコードに掘り、

あなたはそれはそれは意志そのモジュール以来、それを使用してインポートする必要がいけない解決策を見つけましたすべてのQT入力

に自分自身を実装さて、あなたはあなたがパックマン

pacman -S qt5-virtualkeyboard 

でそれをインストールすることができarchlinux使用している場合、それはすでに、あなたのQtのパッケージに付属されていない場合PyQt5ではなくQt5にインストールする必要がいけませんあなたがそれを見つけることができなければnはあなたのOSのリポジトリは、ここでそれを構築しようとし

import os 
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard" 
のようなスクリプトあなたのbashからまたはトップの内側のいずれかの「qtvirtualkeyboard」に環境変数 QT_IM_MODULEを設定し、あなたのPyQtはアプリケーションでそれを使用するdocumantation https://doc.qt.io/qt-5/qtvirtualkeyboard-index.html

続いています

1

qt desingerの場合は、.pyファイルにこの行だけを追加できます。

os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard" 

いますが、qtvirtualkeyboardとQMLを使用したい場合は

pyqt5.8にはvirtualkeyboardプラグインがありませんので、qtのパスを使用する必要があります。

例えば、Ubuntuでpyqt5、qt5.8とqtvirtualkeyboard installiationための基本手順:

1.stepがqtvirtualkeyboard

wgetの http://download.qt.io/official_releases/qt/5.8/5.8.0/qt-opensource-linux-x64-5.8.0.run

のchmod +とqt5.8インストールをx qt-opensource-linux-x64-5.8.0.run

./qt-opensource-linux-x64-5.8.0.run

2。ステップ

apt-getののpython3ののpython3-ピップ PIP3がpyqt5の環境変数をあなたのPythonコードであなたのQTパスを設定

3.step

をインストールしてインストールします。

import sys, os 
os.environ["QT_DIR"] = "/opt/Qt5.8.0/5.8/gcc_64" 
os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = "/opt/Qt5.8.0/5.8/gcc_64/plugins/platforms" 
os.environ["QT_PLUGIN_PATH"] = "/opt/Qt5.8.0/5.8/gcc_64/plugins" 
os.environ["QML_IMPORT_PATH"] = "/opt/Qt5.8.0/5.8/gcc_64/qml" 
os.environ["QML2_IMPORT_PATH"] = "/opt/Qt5.8.0/5.8/gcc_64/qml" 
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard" 

#print(os.environ) 

from PyQt5.QtCore import * 
from PyQt5 import QtCore 
from PyQt5.QtWidgets import * 
from PyQt5.QtQuick import * 


class keyboardapp(object): 
    def __init__(self): 
     self.view = QQuickView() 
     self.view.setObjectName("View") 
     #self.view.setFlags(Qt.FramelessWindowHint) 
     self.view.setSource(QUrl("main.qml")) 
     self.view.setResizeMode(QQuickView.SizeRootObjectToView) 
     #self.Screen = self.view.rootObject() 
     #print("Screen(Root) = " + str(self.Screen)) 
     self.view.show() 

app = QApplication(sys.argv) 
test = keyboardapp() 
sys.exit(app.exec_()) 
関連する問題