QML QtCreator使用无效代码重新格式化组件类型的属性



我定义了以下属性,例如:

property Gradient greenGradient:  Gradient {
    GradientStop {
        position: 0.0
        color: "#00f03b"
    }
    GradientStop {
        position: 1.0
        color: "#3cb53b"
    }
}

在QtCreator(v3.5.0,在Windows7中运行)中,当我进行时

工具->QML/JS->重新格式化文件

它将我的属性更改为以下无效代码:

property Gradient greenGradient: greenGradient: Gradient {
                                     GradientStop {
                                         position: 0.0
                                         color: "#00f03b"
                                     }
                                     GradientStop {
                                         position: 1.0
                                         color: "#3cb53b"
                                     }
                                 }

我把Component定义为这样的属性是不是做错了什么?Rhe QML文件状态:

此外,任何QML对象类型都可以用作属性类型。例如:

property Item someItem
property Rectangle someRectangle

或者这只是QtCreator重新格式化功能中的一个错误?我尝试了几种不同的对象类型,得到了相同的结果。基本类型如intcolorvarstring可以按预期工作。

我想我找到了答案。

Qt5文档对这个主题保持沉默(或者至少不清楚)。然而,在Qt 4.7文档中,我发现了以下内容:

这样的对象类型属性默认为未定义的值。

因此,代码必须读成这样:

property Gradient greenGradient
greenGradient: Gradient {
    GradientStop {
        position: 0.0
        color: "#00f03b"
    }
    GradientStop {
        position: 1.0
        color: "#3cb53b"
    }
}

原始代码和修改后的代码的功能相同,这毫无价值。修改后的版本只需通过QtCreator重新格式化功能即可,不会出现问题。

相关内容

  • 没有找到相关文章

最新更新