Как установить границу для сообщения в 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();

Это результат, курсив работает, но граница не работает.

введите здесь описание изображения


person gnase    schedule 15.05.2017    source источник


Ответы (1)


Проверьте Поддерживаемый HTML-подмножество Qt
Попробуйте используйте border-color и border-style
Вы также можете поместить текст "There is no data" в другой QLabel и использовать

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

Или замените span на table и добавьте 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>");
person thibsc    schedule 15.05.2017
comment
благодарю вас. Я пытался использовать border-style, но это не работает. И я не знаю, как установить пиксель для границы, нет border-width. - person gnase; 15.05.2017
comment
Да, я тоже думал об этом, но я все еще не знаю, как добавить метку в msg в этом случае. - person gnase; 15.05.2017
comment
@gnase, вы можете создать подкласс QDialog, чтобы создать свой собственный MessageBox - person thibsc; 15.05.2017
comment
Хорошо, теперь это работает. Благодарю вас! У меня такая же идея, но я не обновлял эту страницу, поэтому не видел вашего обновления. :). принятый ответ. - person gnase; 15.05.2017