我有一个QListWidget,我希望用显示错误信息的QLabel无缝替换。为了使它无缝,我需要QLabel看起来与空的QListWidget栏相同,居中的错误文本。我希望无论在哪个平台上运行,它都能正常工作。
在Ubuntu中运行我几乎就是通过设置QLabel属性:
errorLabel->setStyleSheet("background-color: white; border: 1px solid #AAAAAA; ");
errorLabel->setFrameShape(QFrame::Panel);
QListWidget的外观不会以任何方式从默认样式中更改,我需要它保持原样。
我设置的边框颜色不太合适,但即使我检查它实际上应该是什么并且硬编码为我的平台正确,我也不能保证它在其他平台上是正确的。有没有办法可以获取QListWidget的样式或颜色属性,并使用它来改变我的QLabel样式或颜色属性,以保证它总是看起来正确?或者还有其他选择我还没考虑过吗?
如果我删除border-color属性,它们目前看起来像这样:
QListWidget未改变:
QLabel应用了这个:
errorLabel->setStyleSheet("background-color: white; border: 1px solid; ");
errorLabel->setFrameShape(QFrame::Panel);
皮特
修改
我找不到合适的QPalette :: ColorRole来设置边框颜色,也找不到合适的QStyleOption来表示QListView的样式......我可以获得QListView' s QStyleOption就是这样:
QStyleOption styleOption = listView.initFrom(pubSubNodeView_);
但它看起来并不合适。如果它有效,我将如何使用它来设置QLabel的样式?或者是否有人知道QStyleOption代表QListView?