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

问题描述 投票:1回答:2

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

python ubuntu pyqt pyqt5
2个回答
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
  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

© www.soinside.com 2019 - 2024. All rights reserved.