以编程方式检索QSS样式表属性的值
Programmatically retrieve values for QSS style sheet properties
如果我有一个使用setMargin()设置了边距的标签,那么我可以使用margin()来获取值。
但是如果我使用样式表设置填充呢?
ui->label->setStyleSheet("QLabel {padding: 0px 5px 10px 15px;}");
如何以编程方式获取值?是否有一个函数会给我在样式表中给定属性的值?是否有类似ui->label()->styleSheet->getProperty("padding:left")
的功能?
我没有找到任何方法来给所有的属性。我认为它不存在是由于建筑的原因。但是您可以从QWidget的子结构中获取大部分。例如,你可以从palette().color(QPalette::Window)
中取background-color
。如果您想在QWidget中使用覆盖的paint事件提供qss背景,您可以这样做:
void PulseChart::paintEvent(QPaintEvent*)
{
QPainter p{this};
p.fillRect(QRect{QPoint{0,0}, this->size()}, palette().color(QPalette::Window));
}