如何使pyqt5开发的应用程序支持ubuntu上的中文输入

时间:2019-04-03 00:55:24

标签: python ubuntu pyqt pyqt5

在ubuntu上,我使用pyqt5开发了一个应用程序,但它不支持中文输入(当我想在应用程序上键入文本时,我的sogouPinyin输入法无法显示中文上下文菜单)。我的操作系统支持中文输入。如何解决?

2 个答案:

答案 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)

  1. 安装一些软件包。
    sudo apt install fcitx-frontend-qt5 fcitx-libs-qt fcitx-libs-qt5
  1. 将lib复制到pyqt文件夹。
    sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ${PYTHON_HOME}/lib/site-packages/PyQt5/Qt/plugins/platforminputcontexts/
  1. 在主文件中添加os.environ['QT_IM_MODULE'] = 'fcitx'。 (也许没有必要。)

reference