其他语言的Qt键盘输入

Qt keyboard input in other language

本文关键字:键盘 输入 Qt 语言 其他      更新时间:2023-10-16

好吧,在文字处理器中,当我将字体更改为Preeti时,键入"asdfgh"将导致显示"बकमानज"。我尝试将QPlainTextEdit的字体更改为Preeti,但它仍然输入"asdfgh">

如何在Qt中实现相同的目标?

这是我正在做的:

@pyqtSlot()
def select_font(self):
    font, ok = QFontDialog.getFont(self)
    if ok:
        ## the text in ui.text_edit is in unicode
        self.ui.text_edit.setFont(font)

显然,字体存在于系统中。字体的显示也是正确的(从文件加载时.txt(。不起作用的是输入该字体。从键盘到所选字体的键映射就是我所说的。

C ++或Python中的帮助:语言在这里无关紧要。

应用程序中可能无法

识别字体。检查是否已安装该字体。还可以尝试使用以下方法将preeti.ttf文件添加到资源并将其添加到应用:

QFontDatabase::addApplicationFont(“:/fonts/preeti.ttf”);

我发现样式表更可靠(比使用 setFont(QFont) (来设置字体。使用textEdit->setStyleSheet(font-family: 'Preeti'); .

编辑

从QFontDialog((设置样式表可以在python中通过以下方式完成

@pyqtSlot()
def select_font(self):
    font, ok = QFontDialog.getFont(self)
    if ok:
        params = font.toString().split(",") # The string is :"Preeti,9,-1,5,50,0,0,0,0,0"
        self.ui.text_edit.setStyleSheet("font-family :%s;font-size:%spt;" % (params[0], params[1]))