QObject 自定义属性何时从样式表中指定的值初始化



我的MyWidget类中有以下用户定义的属性

Q_PROPERTY(QColor HighlightColor READ GetHighlightColor WRITE SetHighlightColor USER true);

我在应用程序级样式表中设置了属性值

MyWidget
{
    qproperty-HighlightColor:#121212;
}

我想在构造函数中获取样式表中指定的颜色值MyWidget GetHighlightColor()但我没有得到正确的值。我必须在构造函数中以较短的时间间隔启动单次计时器,并在计时器触发时调用GetHighlightColor()以获得正确设置的值。

那么属性初始化何时发生呢?我可以访问在样式表中使用值初始化的属性值的最早点是什么?

我在创建小部件后测试了调用QWidget::ensurePolished,之后调用getHighlightColor给了我正确的QColor

主.cpp

QApplication a(argc, argv);
a.setStyleSheet("MyWidget{qproperty-highlightColor:#ff0000;}");

主窗口.cpp

mw = new MyWidget(this);
mw->ensurePolished();
qDebug() << mw->getHighlightColor();

输出

QColor(ARGB 1, 1, 0, 0)

最新更新