Как сделать QLabel похожим на QListWidget на всех платформах
У меня есть QListWidget, который я хочу заменить на QLabel, отображающий сообщение об ошибке. Чтобы он был бесшовным, мне нужно, чтобы QLabel выглядел идентично пустой строке QListWidget по центру текста ошибки. Я хочу, чтобы это также работало независимо от того, на какой платформе он работает.
Работая в Ubuntu, я почти на месте, установив свойства QLabel так:
errorLabel->setStyleSheet("background-color: white; border: 1px solid #AAAAAA; ");
errorLabel->setFrameShape(QFrame::Panel);
Внешний вид QListWidget никак не отличается от стиля по умолчанию, и мне нужно, чтобы он оставался таковым.
Цвет границы, который я установил, не совсем правильный, но даже если я проверю, каким он должен быть на самом деле, и жестко закодирую его, чтобы он был корректным для моей платформы, я не могу гарантировать, что он будет корректным на других платформах. Есть ли способ, которым я могу получить свойства стиля или цвета QListWidget и использовать их для изменения стиля или цвета QLabels, чтобы гарантировать, что он всегда будет выглядеть правильно? Или есть другой вариант, который я не рассматривал?
Если я удалю свойство border-color, они в настоящее время выглядят так:
QListWidget без изменений:
QLabel с этим приложением:
errorLabel->setStyleSheet("background-color: white; border: 1px solid; ");
errorLabel->setFrameShape(QFrame::Panel);
Пит
Редактировать:
Я не могу найти подходящий QPalette::ColorRole для установки цвета границы, и при этом я не могу найти подходящий QStyleOption для представления стиля QListView... Я могу приобрести QStyleOption QListView как таковой:
QStyleOption styleOption = listView.initFrom(pubSubNodeView_);
Но это не выглядит действительным. Если бы он был действительным, как бы я использовал его, чтобы установить стиль QLabel? Или есть QStyleOption кто-нибудь знает о том, что представляет QListView?