可以使用 QTextBrowser + html 组合,这可以实现非常高级的 html 格式设置。例如(假设 ui->textBrowser 是 QTextBrowser):
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->textBrowser->setHtml(QString());
on_User1Message_received("Message from user 1");
on_User2Message_received("Message from user 2");
}
void MainWindow::on_User1Message_received(const QString &msg)
{
ui->textBrowser->append(QString().sprintf("<font color=\"red\"> %s </font>",msg.toStdString().c_str()));
}
void MainWindow::on_User2Message_received(const QString &msg)
{
ui->textBrowser->append(QString().sprintf("<font color=\"blue\"> %s </font>",msg.toStdString().c_str()));
}
以不同颜色打印来自两个用户的消息。on_UserXMessage_received 方法最终可能会很复杂,添加用户名、时间戳等...