【问题标题】:QPlainTextEdit set font for only one lineQPlainTextEdit 只为一行设置字体
【发布时间】:2018-05-18 14:41:48
【问题描述】:

QPlainTextEdit 可以显示不同字体的文本吗? 我已经尝试过了,但似乎所有小部件的字体都会发生一段时间的变化并恢复正常:

        QFont font;
        font.setBold(true);
        ui->plainTextEdit->setFont(font);
        ui->plainTextEdit->insertPlainText("Some text:\n");
        font.setBold(false);
        ui->plainTextEdit->setFont(font);

我尝试将 QPlainTextEdit 更改为 QTextEdit 没有帮助

【问题讨论】:

    标签: c++ windows qt qt5


    【解决方案1】:

    QPlainTextEditQTextEdit 都从QWidget 继承setFont,并且QWidget 一次只有一种字体类型。

    但是,QTextEditexposes an interface 可以通过QTextCharFormat为文本的不同部分设置字体

    就您而言,解决此问题的最简单方法应该是使用QTextEditsetCurrentFont 方法。

    QFont font;
    font.setBold(true);
    ui->textEdit->setCurrentFont(font);
    ui->textEdit->insertPlainText("Some text:\n");
    font.setBold(false);
    ui->textEdit->setCurrentFont(font);
    

    (在这种非常特殊的情况下,您还可以使用setFontWeight 来选择粗体/普通字体,但对于更一般的修改setCurrentFont 更合适)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      相关资源
      最近更新 更多