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