如何在PySide2中使用输入法

2024-06-08 00:06:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让QLineEdit接受来自uim输入法模块的输入。你知道吗

我使用的是Manjaro Linux和uim函数,对于我使用的其他应用程序没有任何问题。你知道吗

PySide2由pip在虚拟环境中安装。你知道吗

如果我运行以下代码,我只能将英文字符放入QLineEdit小部件。你知道吗

from PySide2.QtWidgets import QLineEdit, QApplication
from PySide2.QtCore import Qt

app = QApplication([])
widget = QLineEdit()
widget.setAttribute(Qt.WA_InputMethodEnabled)
widget.show()
app.exec_()

因此,我通过运行以下脚本检查了PySide2的插件路径。你知道吗

from PySide2.QtCore import QLibraryInfo
print(QLibraryInfo.location(QLibraryInfo.PluginsPath))

打印:${venv}/lib/python3.7/site-packages/PySide2/Qt/plugins

然后我比较了系统Qt插件目录和虚拟环境中的目录:

$ ls -1 /usr/lib/qt/plugins/platforminputcontexts/
libcomposeplatforminputcontextplugin.so
libibusplatforminputcontextplugin.so
libqtvirtualkeyboardplugin.so
libuimplatforminputcontextplugin.so
$ ls -1 ${venv}/lib/python3.7/site-packages/PySide2/Qt/plugins/platforminputcontexts/
libcomposeplatforminputcontextplugin.so
libibusplatforminputcontextplugin.so
libqtvirtualkeyboardplugin.so

您可以看到PySide2插件路径缺少libuimplatforminputcontextplugin.so文件。我可以在将缺少的库文件复制到PySide2插件路径时使用uim,但这样做会:

  • 不确保其他输入法(即ibus)工作
  • 使其他平台的打包更加困难

在pip安装PySide2时使用uim这样的输入法有什么解决方案?你知道吗


Tags: pipfromimport路径插件solibplugins

热门问题