QMessageBox中如何给消息设置边框?

How to set border for message in QMessageBox?

我试图为我的消息设置边框,但它不起作用。大家能指出问题出在哪里吗?

QMessageBox msg(this);
msg.setWindowModality(Qt::WindowModal);
msg.setWindowTitle(QLatin1String("Notice"));
msg.setTextFormat(Qt::RichText);
msg.setText("<html><head/><body><p>The reason of error is :</p><p><span style=\"border : 1px solid;\"><i> There is no data </i></span></p></body></html>");
msg.setStandardButtons(QMessageBox::Ok);
msg.setIcon(QMessageBox::Icon::Warning);
msg.exec();

这是结果,斜体有效但边框无效。

检查Qt的Supported HTML Subset
尝试使用 border-colorborder-style
您还可以将文本 "There is no data" 放在另一个 QLabel 中并使用

yourReasonLabel.setStyleSheet("border: 1px solid black;");

或者用 table 替换你的 span 并添加 css:

msg->setText("<html><head/><body>"
             "<p>The reason of error is :</p>"
             "<table style='border-style: solid; border-color: orange;border-width: 1px;'>"
             "<tr><td><i> There is no data </i></td></tr>"
             "</table></body></html>");