在ubuntu上,我使用pyqt5开发了一个应用程序,但它不支持中文输入(当我想在应用程序上键入文本时,我的sogouPinyin输入法无法显示中文上下文菜单)。我的操作系统支持中文输入。如何解决?
答案 0 :(得分:1)
sogouPinyin基于Fcitx,因此对于Qt应用程序,docs表示您必须使用标志QT_IM_MODULE
:
from PyQt5 import QtWidgets
if __name__ == '__main__':
import sys
import os
os.environ['QT_IM_MODULE'] = 'fcitx'
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
lay = QtWidgets.QVBoxLayout(w)
lay.addWidget(QtWidgets.QLineEdit())
lay.addWidget(QtWidgets.QTextEdit())
w.show()
sys.exit(app.exec_())
打开应用程序后,必须将焦点放在QLineEdit,QTextEdit等编辑小部件中,然后按 Ctrl + Space 启用它。
但是您必须安装fcitx-qt5软件包:
在Ubuntu上:
sudo apt-get install fcitx-qt5 fcitx fcitx-frontend-qt5
答案 1 :(得分:1)
sudo apt install fcitx-frontend-qt5 fcitx-libs-qt fcitx-libs-qt5
sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ${PYTHON_HOME}/lib/site-packages/PyQt5/Qt/plugins/platforminputcontexts/
os.environ['QT_IM_MODULE'] = 'fcitx'
。 (也许没有必要。)