1 定义C++ 类
class QMyModel : public QAbstractListModel
{
Q_OBJECT
注意事项: GetCurrentIndex 两个地方要完全相同
NOTIFY CurrentIndexChanged 保证了当 数值变化时第一时间响应
Q_PROPERTY(int GetCurrentIndex READ GetCurrentIndex WRITE SetCurrentIndex NOTIFY CurrentIndexChanged)
int GetCurrentIndex(){return currentIndex;}
void SetCurrentIndex(const int curIndex) {currentIndex = curIndex; emit CurrentIndexChanged();}
signals:
这里只有信号定义没有槽定义
void CurrentIndexChanged();
private:
int currentIndex;
}
2 main.qml 文件
PathView {
id: pathView;
anchors.fill: parent
这里属性的赋值要和上面的方法保持一直
currentIndex: MyModel.GetCurrentIndex;
}
3 主程序入口
int main(int argc, char *argv[])
{
QMyModel model;
gMyModel = &model;
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
QQmlContext *ctxt = viewer.rootContext();
这里 MyModel 就是在 QML 文件中用的名称
ctxt->setContextProperty("MyModel", &model);
viewer.setMainQmlFile(QStringLiteral("main.qml"));
viewer.showExpanded();
return app.exec();
}