在我的QML文件中,我的渐变定义如下:
ColorizedRoundedButton
{
gradient: Gradient
{
GradientStop { position: 0.0; color: "#3f5c43" }
GradientStop { position: 0.33; color: "#113d14" }
GradientStop { position: 0.66; color: "#023105" }
GradientStop { position: 1.0; color: "#056508" }
}
}
所以在这里我希望通过样式表应用这个渐变值,即从C ++中精确设置该值。
我有这样的Style.h文件:
#include <QLinearGradient>
Q_DECLARE_METATYPE(QLinearGradient)
class Style: public QObject
{
Q_PROPERTY(QLinearGradient PositiveGradient READ getPositiveGradient WRITE setPositiveGradient)
QLinearGradient _positiveGradient;
QLinearGradient getPositiveGradient();
void setPositiveGradient(QLinearGradient p_grad);
}
使用QLinearGradient类型作为Q_PROPERTY并将QML文件更改为:
gradient: style.PositiveGradient
这种方法不起作用,我收到运行时错误,因为无法将QLinearGradient分配给QQuickGradient *。
有人知道这个或任何更好的解决方案在c ++和QML之间传递梯度值的解决方案吗?