如果我将html与QTextEdit一起使用,则键入会很混乱

Typing is messy if I use html with QTextEdit

本文关键字:混乱 html 一起 QTextEdit 如果      更新时间:2023-10-16

我正在尝试更改单个单词的属性,例如字体和颜色。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专家。任何建议。

HTML 是文档语法树的传输表示形式。你需要修改其中一个,否则你将面临两者之间交互的后果。选择一个并坚持下去。

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