как сделать так, чтобы приложения, разработанные pyqt5, поддерживали китайский ввод в ubuntu - PullRequest
1 голос
/ 03 апреля 2019

В Ubuntu я разработал приложение, использующее pyqt5, но оно не поддерживает китайский ввод (мой метод ввода sogouPinyin не может отобразить контекстное меню на китайском языке, когда я хочу набрать текст в своем приложении).Моя ОС поддерживает китайский ввод.Как это исправить?

Ответы [ 2 ]

1 голос
/ 03 апреля 2019
  1. установить несколько пакетов.
    sudo apt install fcitx-frontend-qt5 fcitx-libs-qt fcitx-libs-qt5
скопировать lib в папку pyqt.
    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' в основной файл.(возможно, не обязательно.)

ссылка

1 голос
/ 03 апреля 2019

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 + Пробел , чтобы включить его.

Но вы должны установить fcitx-qt5 пакет:

В Ubuntu:

sudo apt-get install fcitx-qt5 fcitx fcitx-frontend-qt5
...