我试图更改单词这样的字体和颜色的属性。 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的专家。有什么建议。
答案 0 :(得分:2)
HTML是文档语法树的传输表示。你需要修改另一个或,否则你将面临两者之间相互作用的影响。选择一个并坚持下去。
由于您使用的是QTextDocument
界面,因此您应该使用该界面进行所有更改。那时就没有必要直接处理HTML了。要更改一块文本的属性,请选择文本,然后通过游标API对其进行操作。