1

我正在学习 pyqt5,但不知何故,我无法在 QTextEdit 或 QLineEdit 创建的文本框中使用 fcitx,尽管 fcitx 与其他 Qt 应用程序(如 Goldendict 或 kate)正常工作。但后来我发现 fcitx 也不适用于另一个使用 Qt 5.10 的名为 Retext 的 Qt 应用程序。也许这与我认为的最新版本的 Qt 有关。

这是我的代码,只是一个简单的文本框,没有别的:

import PyQt5.QtWidgets as QtWidgets
import sys

class App(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.text = QtWidgets.QTextEdit()
        self.initUI()

    def initUI(self):
        vbox = QtWidgets.QVBoxLayout()
        vbox.addWidget(self.text)
        self.setLayout(vbox)
        self.show()

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())
4

1 回答 1

0

感谢@ekhumoro,我知道如何解决这个问题。只需将此行添加到__init__函数中即可启用输入法:

self.setAttribute(Qt.WA_InputMethodEnabled)

然后这样做:

cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/fcitxplatforminputcontextplugin.so ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforminputcontexts
sudo chmod +x ~/.local/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforminputcontexts/fcitxplatforminputcontextplugin.so
于 2018-04-29T14:54:42.057 回答