完美解决Pyqt5 调用软键盘适用于触摸屏

Pyqt5 调用软键盘
安装Python3.7 和Pyqt 5.15.1, 代码加os.environ[“QT_IM_MODULE”] = “qtvirtualkeyboard” 还是不够的!
解决方法:参考 链接
首先无需安装Qt5.15
(1)Python安装aqtinstall库,命令行:python -m pip install aqtinstall, 当然也可以下载轮子文件,但要安装其依赖库。
(2)查看Pyqt 版本,方法一:Pycharm->file->settings->Project Interpreter, 找到qt5-applications->version我的是5.15.1.1, 方法二:如下输出第一行为后面要用粘贴的目标文件夹,第二行为版本号。

from PyQt5.QtCore import QT_VERSION_STR, QLibraryInfo
print(QLibraryInfo.location(QLibraryInfo.PrefixPath))
print('version', QT_VERSION_STR)

输出:

C:/Users/XXXX/AppData/Local/Programs/Python/Python37/lib/site-packages/PyQt5/Qt
version 5.15.1

(3)命令行:python -m aqt install 5.15.1(此处为Pyqt5版本号) windows desktop win64_msvc2019_64 -m qtvirtualkeyboard --outputdir qt
我的是Win10 64位,apt使用见 链接,等个三五分钟(视网速而定),如下:效果如图
在命令行的文件夹下(我的是C:\Users\XXXXX>)找到生成的qt文件夹。
(4)1复制"qt/5.15.0/msvc2019_64/bin/Qt5VirtualKeyboard.dll" 文件粘贴到(2)中的“目标文件夹/bin”内。
2在“目标文件夹/plugins”下新建platforminputcontexts文件夹。
3复制“qt/5.15.1/msvc2019_64/plugins/platforminputcontexts/qtvirtualkeyboardplugin.dll” 文件到上一步新建的 “目标文件夹/plugins/platforminputcontexts” 文件夹内。
4 复制"qt/5.15.1/msvc2019_64/plugins/virtualkeyboard" 文件夹到 “目标文件夹/plugins” 文件夹内。
5复制"qt/5.15.1/msvc2019_64/qml/QtQuick/VirtualKeyboard" 文件夹到 “目标文件夹/qml/QtQuick” 文件夹内。
(5)测试代码:

import os
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLineEdit
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QWidget
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard"
class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.line_edit = None
        self.init_ui()

    def init_ui(self):
        self.line_edit = QLineEdit()
        self.line_edit2 = QLineEdit()
        self.layout = QVBoxLayout()
        self.main_widget = QWidget()
        self.main_widget.setLayout(self.layout)
        self.layout.addWidget(self.line_edit)
        self.layout.addWidget(self.line_edit2)
        self.setCentralWidget(self.main_widget)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())

效果如下:
在这里插入图片描述
另外,如果QLabel设置inputMethodHints,比如"ImhDigitsOnly"勾上则会只弹出数字软键盘。
在这里插入图片描述

最后,如果QDialog 窗口设置模态,windowModality 设置为WindowModal, 不要设置为ApplicationModal否则软键盘虽然弹出来仍然使用不了。

欢迎留言讨论,Q562604218。

虚拟键盘 软键盘 free virtual keyboard ==================== 将英语译成中文 免费多语言虚拟屏幕键盘 屏幕上的所有虚拟键工作只是因为他们如果你是一个标准的电脑键盘打字。选择键和免费的虚拟键盘发送到一个文字处理器,电子邮件,网页或其他Windows应用程序可能正在使用。键盘可以移动屏幕上的任何地方,可以是任意大小。 免费的虚拟键盘可用于残疾,防止他或她从一个物理电脑键盘打字的人。 也与我们的虚拟键盘,你可以: 改变键盘尺寸。 更改键盘的透明度。 打开和关闭一个键复读功能(见上下文菜单)。 规模的虚拟键盘以匹配屏幕宽度(见上下文菜单)。这是一个在纵向和横向模式频繁屏幕旋转有用的功能。 更改键盘(见上下文菜单)的类型。可用3虚拟键盘类型。 更改主题颜色(见上下文菜单)。 任何语言中键入文本。 键入文本(例如左手美国德沃夏克)其他布局。 -------------------------------------------------- ------------------------------ 免费的虚拟键盘是为个人和商业使用免费程序。这个节目作为分发的依据,且无任何担保,甚至没有适销性或针对特定目的的隐含的担保。舒适软件集团不能作出对任何直接或间接造成的破坏计划。 舒适软件集团保留权利更改日后发牌条件。 朗读 显示对应的拉丁字符的拼音新! 点击上方的字词即可查看其他翻译。 删除 字典 - 查看字典详细内容
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值