1.屏幕虛擬鍵盤
創建文件virtualkeyboard.py
import sys, os
from PySide2.QtWidgets import QApplication, QLineEdit
if __name__ == "__main__":
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard" # 導入虛擬鍵盤
app = QApplication(sys.argv)
lineEdit = QLineEdit()
lineEdit.show()
sys.exit(app.exec_())
在代碼前加入os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard",在lineEdit輸入框獲得焦點之後(被點擊),屏幕虛擬鍵盤會自動彈出來。
使用PyInstaller對軟件進行打包後,發現虛擬鍵盤並不能被使用
2.解決PyInstaller打包虛擬鍵盤不能使用的問題
1)屏幕虛擬鍵盤使用QtQuick編寫,那麼打包時應包含QtQuick庫
import sys, os
import PySide2.QtQuick # 導入QtQuick
from PySide2.QtWidgets import QApplication, QLineEdit
if __name__ == "__main__":
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard" # 導入虛擬鍵盤
app = QApplication(sys.argv)
lineEdit = QLineEdit()
lineEdit.show()
sys.exit(app.exec_())
加入import PySide2.QtQuick後,PyInstaller在打包時會自動加入QtQuick庫
2)手動導入虛擬鍵盤庫
複製Python安裝目錄\Lib\site-packages\PySide2\plugins\下的virtualkeyboard文件夾到文件virtualkeyboard.py所在的當前目錄;然後在執行PyInstaller時,加入以下選項:
--add-data .\virtualkeyboard;.\PySide2\plugins\virtualkeyboard
此選項將當前文件夾下的virtualkeyboard文件夾以數據的形式複製到打包目錄\PySide2\plugins\下,至此在打包目錄下虛擬鍵盤運行的全部環境就緒。