LINUX.ORG.RU

История изменений

Исправление fluorite, (текущая версия) :

Всё как надо выводит:

qml: langList [0] = ABC
В меню ABC и ru.

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>

#include <FixedParameters.h>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    qmlRegisterType<FixedParameters>("Xintrea", 1, 0, "FixedParameters");
    auto fixedParameters = new FixedParameters;
    engine.rootContext()->setContextProperty("fixedParameters", fixedParameters);
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

FixedParameters.h

#pragma once
#include <QObject>

class FixedParameters : public QObject
{
    Q_OBJECT
public:
    explicit FixedParameters(QObject *parent = nullptr) {}

    Q_INVOKABLE QStringList getInterfaceLanguageAvailable() const {
        static QStringList list { "eng", "ru"};
        return list;
    }
};

PropertiesMenu.qml

import QtQuick 2.6
import Xintrea 1.0

PropertiesMenuView {

    Component.onCompleted: {
        var langList=fixedParameters.getInterfaceLanguageAvailable()

        // Замена первого элемента
        langList[0]="ABC";
        console.log("langList [0] = "+langList[0]); // Добавил строчку
        model=langList;
    }
}

Исходная версия fluorite, :

Всё как надо выводит:

qml: langList [0] = ABC
В меню ABC и ru.

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>

#include <FixedParameters.h>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    qmlRegisterType<FixedParameters>("Xintrea", 1, 0, "FixedParameters");
    auto fixedParameters = new FixedParameters;
    engine.rootContext()->setContextProperty("fixedParameters", fixedParameters);
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

FixedParameters.h

#pragma once
#include <QObject>

class FixedParameters : public QObject
{
    Q_OBJECT
public:
    explicit FixedParameters(QObject *parent = nullptr) {}

    Q_INVOKABLE QStringList getInterfaceLanguageAvailable() const {
        static QStringList list { "eng", "ru"};
        return list;
    }
};

PropertiesMenu.qml

import QtQuick 2.6
import Xintrea 1.0

PropertiesMenuView {
    //    textRole:  "name"
    model: fixedParameters.getInterfaceLanguageAvailable()

    Component.onCompleted: {
        var langList=fixedParameters.getInterfaceLanguageAvailable()

        // Замена первого элемента
        langList[0]="ABC";
        console.log("langList [0] = "+langList[0]); // Добавил строчку
        model=langList;
    }
}