1. 程式人生 > >Qt例項分析——QML呼叫C++方法, C++呼叫QML

Qt例項分析——QML呼叫C++方法, C++呼叫QML

1、QML呼叫C++函式

      C++中定義:

    Q_INVOKABLE void clearChart();
<pre name="code" class="cpp">void PieChart::clearChart()
{
    setColor(QColor(Qt::transparent));
    update();

   // emit chartCleared();
}
在QML中直接使用PieChart類例項呼叫函式即可

呼叫:
    MouseArea {
        anchors.fill: parent
        onClicked: aPieChart.clearChart()
    }

2、C++中傳送訊號,QML中接收執行
signals:
    void chartCleared();
執行:
void PieChart::clearChart()
{
   emit chartCleared();
}

QML接收執行

    PieChart {
        id: aPieChart
        anchors.centerIn: parent
        width: 100; height: 100
        color: "red"

        onChartCleared: console.log("The chart has been cleared")
    }

原始碼下載