20

我有一个创建 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 标签的文本。如何打印列表?有任何想法吗?

4

2 回答 2

34

不要将换行符\n与 html-tags 混合使用。将换行符更改为<br>,然后自动识别文本格式。

于 2012-03-31T12:44:36.187 回答
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 对象。

于 2012-03-31T12:42:51.747 回答