我的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)