Solved Feeding data from QSortFilterProxyModel to a BarSeries
-
Hi,
I am trying to show data from a QSortFilterProxyModel (C++ side) in a BarSeries (QML side) but struggle on the general approach.
Can I give my model to the BarSeries in any way or do I need to write some Q_INVOKABLE methods on the C++ side to get the data?
Regards
-
OK, now I did it like this:
Create a Q_INVOKABLE that collects data from a column in a QVarianList and call that from the QML side.C++
QVariantList ProxyModel::values(int role) const { QVariantList values; int rows = rowCount(); for (int row = 0; row < rows; ++row) { QModelIndex idx = index(row, 0); values.append(idx.data(role)); } return values; }
QML
ChartView { title: "Consumption" anchors.fill: parent antialiasing: true BarSeries { id: mySeries axisX: BarCategoryAxis { categories: myModel.values(258) } BarSet { label: qsTr("Voltage"); values: myModel.values(259) } BarSet { label: qsTr("Current"); values: myModel.values(260) } BarSet { label: qsTr("Power"); values: myModel.values(261) } BarSet { label: qsTr("Energy"); values: myModel.values(262) } } }
...with those role numbers being the ones I defined in
roleNames()
.