Я хотел бы иметь компонент ProgressBar в стиле Material, но с некоторыми изменениями, чтобы сделать его регулируемым по высоте.Пока все хорошо, у меня был результат, который я хотел.
Так что я просто скопировал этот код в MyPb.qml, чтобы использовать его в качестве компонента:
import QtQuick 2.11
import QtQuick.Templates 2.4 as T
import QtQuick.Controls.Material 2.4
import QtQuick.Controls.Material.impl 2.4
T.ProgressBar {
id: control
property real radius: 3
contentItem: ProgressBarImpl {
implicitHeight: control.height
scale: control.mirrored ? -1 : 1
color: control.Material.accentColor
progress: control.position
indeterminate: control.visible && control.indeterminate
}
background: Rectangle {
implicitWidth: control.width
implicitHeight: control.height
radius: control.radius
color: Qt.rgba(control.Material.accentColor.r, control.Material.accentColor.g, control.Material.accentColor.b, 0.25)
}
}
Что дает этот результат дляради примера:
С кодом:
Rectangle {
width: 600
height: 300
color: "black"
MyPb {
anchors.centerIn: parent
id: prg
width: 100
height: 20
indeterminate: false
radius: 5
visible: true
value: 0.5
}
}
Поскольку ProgressBarImpl действительно не поддерживает радиус, закругленные углы«скрыты» под непрозрачным прямоугольником прогресса, как видно на рисунке (слева от индикатора выполнения).
Теперь я не делаю свой индикатор выполнения в том, что я хочу «неопределенный»анимация тоже.Поэтому я подумал, что было бы намного проще повторно использовать реализацию Qt, чем начинать создавать свои собственные анимации.
Поэтому мне интересно, есть ли способ получить индикатор выполнения Материала, но примените к нему какую-то обработку?чтобы получить закругленные углы как с неопределенным = false / true.
Любая помощь будет оценена!