如果我在QTextEdit中使用html,打字很麻烦

时间:2017-06-13 12:10:05

标签: html c++ qt qt5

我试图更改单词这样的字体和颜色的属性。 QTextEdit允许我通过setHtml(htmlText)将文本设置为html,在将QString设置为html后,键入变得混乱。我不能输入空格也不能输入。有时单词是向后写的。

void MainWindow::on_textEdit_textChanged()
{
    QString plainText = ui->textEdit->toPlainText();
    QString htmlText = "<font color='red'>" + plainText + "</font>";

    disconnect(ui->textEdit, SIGNAL(textChanged()), this, SLOT(on_textEdit_textChanged()));

    ui->textEdit->setHtml(htmlText);
    QTextCursor cursor(ui->textEdit->textCursor());
    cursor.movePosition(QTextCursor::EndOfWord);
    ui->textEdit->setTextCursor(cursor);

    connect(ui->textEdit, SIGNAL(textChanged()), this, SLOT(on_textEdit_textChanged()));
}

颜色设置正确但输入不一致。我不是html的专家。有什么建议。

1 个答案:

答案 0 :(得分:2)

HTML是文档语法树的传输表示。你需要修改另一个,否则你将面临两者之间相互作用的影响。选择一个并坚持下去。

由于您使用的是QTextDocument界面,因此您应该使用该界面进行所有更改。那时就没有必要直接处理HTML了。要更改一块文本的属性,请选择文本,然后通过游标API对其进行操作。