我想确保在下面的代码中,红线始终位于最上方,qml是否具有允许我执行此操作的任何功能,例如相对或绝对定位选项。
ChartView{
anchors.fill: parent
id: chart
ValueAxis{
id: axisY
min: 0
max: 1
}
ValueAxis{
id: axisX
min: 0
max: 1
}
property var redSeries;
property var blackSeries;
Component.onCompleted: {
redSeries = chart.createSeries(chart.SeriesTypeLine, "red", axisX, axisY);
redSeries.color = "red";
redSeries.append(0.3,0);
redSeries.append(0.3,1);
redSeries.width = 3;
}
Timer{
interval: 1000
running: true
triggeredOnStart : false
onTriggered: {
chart.blackSeries = chart.createSeries(chart.SeriesTypeLine, "black", axisX, axisY);
chart.blackSeries.color = "black";
chart.blackSeries.append(0,0.5);
chart.blackSeries.append(1,0.5);
chart.blackSeries.width = 3;
}
}
}
编辑:
此刻正在显示的是第一张图像中的内容,但是我希望在显示第二张图像的同时仍生成红线之后的第二条黑线
答案 0 :(得分:0)
很抱歉造成误会。我已经考虑过“ top”是y轴的顶部,而不是“ z”-)。至于这个问题,我没有找到任何解决方案。没有任何方法可以控制序列的z顺序。我看到的唯一愚蠢的解决方法是删除红线,并在添加黑线之后一直添加。
可能是这样的:
ChartView {
...
Timer {
...
onTriggered: {
chart.blackSeries = chart.createSeries(chart.SeriesTypeLine, "black", axisX, axisY);
...
chart.removeSeries(chart.redSeries);
}
}
onSeriesRemoved: {
var newSeries = chart.createSeries(chart.SeriesTypeLine, "red", axisX, axisY);
newSeries.color = "red";
for(var i = 0;i <series.count;i ++)
{
var p = series.at(i);
newSeries.append(p.x, p.y);
}
chart.redSeries = newSeries;
}