以编程方式检索QSS样式表属性的值

Programmatically retrieve values for QSS style sheet properties

本文关键字:属性 样式 QSS 编程 方式 检索      更新时间:2023-10-16

如果我有一个使用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));
}