Ich habe ein Kreisdiagramm dynamisch erstellt, das die unten beschriebene Funktion createPieChart() verwendet. Wenn auf ein Segment geklickt wird, möchte ich eine Funktion aufrufen, um das Label und den Wert dieses Segments auszugeben.QML-Diagramm interaktiv
Ich bin vor zwei Problemen:
- Obwohl ich „angeklickt“ oder „gedrückt“ oder „freigegeben“ Signale verbinden, wird der Steckplatz nicht erreicht. Ich verwende qtcharts 2.0 (ich kann gerade nicht aktualisieren).
- Ich bin in der Lage, "hovered" -Signal zu verbinden, aber ohne irgendeinen Parameter zu übergeben, also weiß ich nicht, in welcher Scheibe ich bin.
Diese sind die anderen Funktionen:
function createPieChart(data){
pieserieschart.clear();
slices.splice(0, slices.length) //clear slices array
for (var prop in data) {
slices.unshift(pieserieschart.append(prop, data[prop]));
//I get "Cannot read property 'label' of undefined using this method
slices[0].hovered.connect(function(){mouseHoverSlice(slices[0].label));
//WORKS, but I want to pass the label of that slice (and the value if possible)
slices[0].hovered.connect(mouseHoverSlice);
//it is not working at all
slices[i].clicked.connect(sliceClicked);
}
function sliceClicked(){
console.log("Slice Clicked"); //I cannot see this printed
}
function mouseHoverSlice(info){
console.log("Slice hover: " + info);
}
Jede Vorstellung davon, wie es zu tun? Vielen Dank!
Offenbar verbinden Ich bin nicht der einzige, um dieses Problem gegenüber. Das clicked() -Signal wird auch bei diesem Beitrag nicht ausgelöst: https://stackoverflow.com/questions/40626911/why-is-the-clicked-signal-for-the-qpieslice-not-emitted – laurapons