2017-09-21 12 views
0

私は、以下で説明するcreatePieChart()関数を使用して動的に作成された円グラフを持っています。スライスをクリックすると、そのスライスのラベルと値を出力する関数を呼び出す必要があります。QMLチャートインタラクティブ

私は2つの問題直面しています:私は接続が

  1. 「をクリックした」または「解放」信号を「押された」または、スロットが到達していません。私はqtcharts 2.0を使用しています(私は今更新できません)。
  2. "ホバリング"信号を接続することはできますが、パラメータを渡すことなく、どのスライスに入っているのか分かりません。

これらは、他の機能です:

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); 
} 

それを行う方法の任意のアイデア?ありがとう! QtCharts 2.2私はこのようにそれを解決することができたにアップグレードした後

+0

を作成しbarsetを接続することができました。この投稿ではclicked()シグナルはトリガーされません:https://stackoverflow.com/questions/40626911/why-is-the-clicked-signal-for-the-ppieslice-not-emitted – laurapons

答えて

0

:パイのために &ライン&散布図を、私はスライス/ポイントを返しonClickedを使用。したがって、スライスまたはポイントを動的に作成するときに信号を接続する必要はありません。棒グラフの

、私はどうやら、私はこの問題に直面してだけではないよ

var barvalues = barserieschart.append("label",values) 
barvalues.clicked.connect(barClicked) 

... 

ChartView { 
     PieSeries {id: pieserieschart; onClicked: sliceClicked(slice) } 
     BarSeries {id: barserieschart } 
     ScatterSeries{id: scatterserieschart; onClicked: scatterclicked(point)} 
}