[英]QAbstractSeries signal clicked because type is QLineSeries
有沒有辦法將 QAbstractSeries 連接到點擊信號,因為 QAbstractSeries 的類型是 QLineSeries?
我可以執行以下操作:
QlineSeries *series = new QLineSeries();
QChart *chart = new QChart();
series->append(1,1);
chart->addSeries(series);
connect(series, &QLineSeries::clicked, this, &View::myFunction);
但是,如果我在另一個類中定義了該系列,並且只能通過以下方式訪問該系列
QList<QAbstractSeries*> seriesList = chart->series();
我無法連接一個系列
connect(seriesList[0], &QAbstractSeries::clicked, this, &View::myFunction);
因為 QAbstractSeries 沒有“點擊”信號。 但我可以通過訪問類型
seriesList[0].type();
但是現在我不知道如何處理與這些信息的連接。 或者是否有另一種方法可以將系列作為 QLineSeries 從我的圖表中取出?
clicked
信號與QXYSeries
類及其派生類(例如 QLineSeries)的對象相關聯,因此解決方案是進行轉換以過濾該系列:
for(QAbstractSeries* series: chart->series()){
if(QXYSeries* xyseries = qobject_cast<QXYSeries *>(series)){
connect(xyseries, &QXYSeries::clicked, this, &View::myFunction);
}
}
使用前面的代碼,它們將應用於從 QXYSeries 派生的類,例如 QLineSeries 和 QScatterSeries,但如果您只想應用於 QLineSeries,則必須執行以下操作:
for(QAbstractSeries* series: chart->series()){
if(QLineSeries* lineseries = qobject_cast<QLineSeries *>(series)){
connect(lineseries, &QLineSeries::clicked, this, &View::myFunction);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.