不能将fcitx与自编的Qt应用程序一起使用

时间:2018-04-28 13:47:26

标签: python pyqt pyqt5 fcitx

我正在学习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_())

1 个答案:

答案 0 :(得分: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