Does PyQt5/pyqt4 already supports QtVirtualKeyboard with Handwriting Recognition?

谁都会走 提交于 2020-01-24 23:11:02

问题


I'm working on a desktop application using pyqt5, and I want to use a Virtual Keyboard with Handwriting Recognition. I saw that Qt, QtVirtualKeyboard already support it.

Here's a link!

I got the C++ Qt example code running on QtCreator. But using python3.5 and PyQt5 it gives this message:

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

How should I go on from here? Does PyQt5 comes with VirtualKeyboard module? if no How to install it on PyQt5?


回答1:


I been stuck with this too, and i am new to Qt After some researching, and digging in source code, found the solution

You dont need to import it to use it since its a module it will implement itself to every qt input

Well you dont need to install it on PyQt5 but on Qt5 if it is not already come with your Qt package, if you use archlinux you can install it with pacman

pacman -S qt5-virtualkeyboard

If you cannot find it in you os repositories try to build it here is documantation https://doc.qt.io/qt-5/qtvirtualkeyboard-index.html

Then to use it in your pyqt application, set environmental variable QT_IM_MODULE to "qtvirtualkeyboard" either from your bash or inside the top your script like

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



回答2:


for qt desinger you can add only this line on your .py file.

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

but If you want use QML with qtvirtualkeyboard;

There is no virtualkeyboard plugin in pyqt5.8, you must be use qt's paths.

For a example, basic steps for pyqt5, qt5.8 and qtvirtualkeyboard installiation on ubuntu:

1.step install qt5.8 with 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.step

apt-get install python3 python3-pip pip3 install pyqt5

3.step

set environmental variables your qt paths on your python code.

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


来源:https://stackoverflow.com/questions/40360033/does-pyqt5-pyqt4-already-supports-qtvirtualkeyboard-with-handwriting-recognition

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!