QMessageBox中的HTML

22

我有一个动作,它会创建一个QMessageBox。在那个对话框中,我想要打印一个包含多个项的列表。我有以下代码:

void MainWindow::onAboutActivated(){
qDebug() << "about";
QMessageBox::about(this,
                   "Autor: \n"
                   "\n"
                   "Umoznuje:"
                   "<ul>"
                   "<li> Item 1 </li>"
                   "<li> Item 2 </li>"
                   "<li> Item 3 </li>"
                   "</ul>");

然而这并不会打印列表,而是带有HTML标签的文本。我该如何打印列表?有什么想法吗?

2个回答

36
请勿将换行符 \n 与 HTML 标签混合使用。请将换行符更改为 <br>,文本格式会自动识别。

3

看起来你正在设置对话框的标题而不是对话框内容。这对我有用:

void MainWindow::onAboutActivated(){
qDebug() << "about";
QMessageBox::about(this, "Dialog Title",
                   "Autor: \n"
                   "\n"
                   "Umoznuje:"
                   "<ul>"
                   "<li> Item 1 </li>"
                   "<li> Item 2 </li>"
                   "<li> Item 3 </li>"
                   "</ul>");

QMessageBox 的默认文本格式为 Qt::AutoText,它应该能够检测您字符串中的 HTML 标签,因此您可以继续使用 about 静态方法而无需实例化 QMessageBox 对象。


我认为这只是一个笔误,OP忘记包括对话框标题。OP发布的代码(没有标题)无法编译,但OP表示它打印HTML标记,并且没有提到任何编译问题。您的代码可以编译,但不能解决实际问题,即对话框框架直接打印HTML标记,而不是将HTML解释为列表。另一个答案解决了这个问题。 - Donald Duck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接