2016-11-01 63 views
1

我正在使用pyqt5处理桌面应用程序,并且我想使用具有手写识别功能的虚拟键盘。我看到Qt,QtVirtualKeyboard已经支持它。PyQt5/pyqt4是否已经支持手写识别QtVirtualKeyboard?

Here's 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输入

那么你不需要在PyQt5但QT5安装它,如果它是不是已经跟你的Qt包,如果你使用的archlinux,你可以吃豆子

pacman -S qt5-virtualkeyboard 

安装如果你找不到它我n您OS库试图在这里建立它是documantation https://doc.qt.io/qt-5/qtvirtualkeyboard-index.html

然后在你的PyQt的应用程序中使用它,设置环境变量QT_IM_MODULE为“qtvirtualkeyboard”无论是从您的bash或顶部内侧脚本像

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

对于qt desinger,您只能在.py文件中添加此行。

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

如果你想使用QML与qtvirtualkeyboard;

pyqt5.8中没有虚拟键盘插件,你必须使用qt的路径。

对于例如,对于pyqt5,qt5.8和qtvirtualkeyboard installiation ubuntu上基本步骤:

1.step安装qt5.8与qtvirtualkeyboard

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

使用chmod + x qt-opensource-linux-x64-5.8.0.run

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

2。步骤

易于得到安装python3 python3-PIP PIP3上Python代码安装pyqt5

3.step

设置环境变量你的Qt路径。

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_())