python - 其他语言的Qt键盘输入

标签 python c++ qt pyqt5

在文字处理器中,当我将字体更改为 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]))

关于python - 其他语言的Qt键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407081/

相关文章:

python - 计算 3D 点云的 EMD 非常慢

c++ - '[' 标记之前的预期主表达式

Python - 使用 defaultdict 制作自定义对象的字典

python - 我如何在 python 中连接到 Microsoft sql server 2008

C++ header 中包含哪些内容以及 CPP 文件中包含哪些内容?

c++ - 引用静态对象 - 在 ARM proc 上触发对齐陷阱

c++ - 圆柱形轨迹的 3D 可视化

c++ - 如何在 Qt 5.2 中使用静态库?

c++ - 如何将 QCommandLineParser 用于具有多个参数的参数?

python - 获取默认线条颜色循环