假设 QPlainTextEdit类型控件为 ui.tips_plainTextEdit;
void DisPlayTipMsg(QString tip, ELOG_LEVEL level)
{
if (ui.tips_plainTextEdit->blockCount() > 5000)
{
ui.tips_plainTextEdit->clear();
}
QString display_str = tip + "\n";
// 在追加内容之前保存当前光标位置
QTextCursor cursor = ui.tips_plainTextEdit->textCursor();
cursor.movePosition(QTextCursor::End);
ui.tips_plainTextEdit->setTextCursor(cursor);
cursor = ui.tips_plainTextEdit->textCursor();
QTextCharFormat format;
format.setForeground(Qt::white);
switch (level)
{
case LOG_NORMAL:
format.setForeground(Qt::white);
break;
case LOG_WRN:
format.setForeground(Qt::yellow);
break;
case LOG_ERR:
format.setForeground(Qt::red);
break;
default:
format.setForeground(Qt::white);
break;
}
cursor.mergeCharFormat(format);
cursor.insertText(display_str);
ui.tips_plainTextEdit->setTextCursor(cursor);
}