QML ProgressBar 无效的属性名称“样式”
Posted
技术标签:
【中文标题】QML ProgressBar 无效的属性名称“样式”【英文标题】:QML ProgressBar invalid property name "style" 【发布时间】:2020-07-29 08:00:35 【问题描述】:我尝试使用 QML ProgressBar。 这是文档 https://doc.qt.io/qt-5/qml-qtquick-controls-styles-progressbarstyle.html#details
我试试这个代码
import QtQuick 2.14
import QtQuick.Controls 2.15
import QtQuick.Window 2.14
import QtQuick.Controls.Styles 1.4
Window
id: root
width: 300; height: 300
ProgressBar
value: 0.5
style: ProgressBarStyle
background: Rectangle
radius: 2
color: "lightgray"
border.color: "gray"
border.width: 1
implicitWidth: 200
implicitHeight: 24
progress: Rectangle
color: "lightsteelblue"
border.color: "steelblue"
但我遇到了错误invalid property name "style"。我做错了什么?
【问题讨论】:
【参考方案1】:您正在混合 Qt Quick Controls 1 和 Qt Quick Controls 2 的样式。要在 Qt Quick Controls 2 中自定义 ProgressBar,请参阅this page:
import QtQuick 2.12
import QtQuick.Controls 2.12
ProgressBar
id: control
value: 0.5
padding: 2
background: Rectangle
implicitWidth: 200
implicitHeight: 6
color: "#e6e6e6"
radius: 3
contentItem: Item
implicitWidth: 200
implicitHeight: 4
Rectangle
width: control.visualPosition * parent.width
height: parent.height
radius: 2
color: "#17a81a"
【讨论】:
【参考方案2】:import QtQuick.Controls 2.15
...
import QtQuick.Controls.Styles 1.4
您在这里使用了两个不同版本的 QtQuick,即。您已从没有 style
属性 (https://doc.qt.io/qt-5/qml-qtquick-controls2-progressbar.html) 的 QtQuick.Controls 2.15
导入 ProgressBar
。
可以在此处找到有关差异的更多信息: https://doc.qt.io/qt-5/qtquickcontrols2-differences.html
【讨论】:
以上是关于QML ProgressBar 无效的属性名称“样式”的主要内容,如果未能解决你的问题,请参考以下文章
QML QtCreator 使用无效代码重新格式化组件类型的属性