2012-03-31 54 views
11

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

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标签的文本。 如何打印清单? 有什么建议吗?

回答

20

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

+1

就是这样,谢谢 – Jan 2012-03-31 13:07:10

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的::自动图文集应该检测到您的字符串中的HTML标签,所以你应该能够继续使用about静态方法,而不需要一个实例QMessageBox对象。

+0

我认为这只是OP的忘记包含对话标题的拼写错误。 OP张贴的代码(没有标题)不会编译,但OP说它打印HTML标签,并没有提到任何编译问题。你的代码编译得很好,但并没有解决实际的问题,就是对话框打印HTML标签,而不是将HTML解释为列表。另一个答案解决了这个问题。 – 2017-04-09 17:35:14