我们一直在使用Qt的WebKit作为聊天记录控件。与Skype类似,它列出了对话历史记录,突出显示了该人的姓名,显示了他/她的文本,并允许轻松选择和复制。
由于某些我无法控制的原因,我的应用程序不再允许使用Qt的WebKit。我正在寻找替代方案,理想情况下在qt的基本产品中使用控件(我非常愿意扩展)。
有什么建议吗?你认为我可以使用丰富的编辑控件吗?它有只读模式吗?
答案 0 :(得分:0)
可以使用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方法最终可能很复杂,添加用户名,时间戳等等......