У меня есть такой код:
Component.onCompleted: {
// Получение списка
var langList=fixedParameters.interfaceLanguageAvailable;
// Замена первого элемента
langList[0]="ABC";
interfaceLanguageComboBox.model=langList;
}
В результате ComboBox показывает первым элементом строку «ABC». Это хорошо, это правильно.
Затем я просто добавляю команду отладочного вывода, вот так:
Component.onCompleted: {
// Получение списка
var langList=fixedParameters.interfaceLanguageAvailable;
// Замена первого элемента
langList[0]="ABC";
console.log("langList [0] = "+langList[0]); // Добавил строчку
interfaceLanguageComboBox.model=langList;
}
И в консоли я вижу:
langList [0] = Eng
Вот это да! Строка «Eng» - это совсем не «ABC». То есть, по какой-то причине, если в коде есть вывод на консоль, то первоначальное значение не меняется. В графическом интерфесе тоже «ABC» пропадает, и выводится «Eng».
Почему так?
Пояснение. fixedParameters.interfaceLanguageAvailable - это метод C++ - объекта, который возвращает QStringList из двух значний «Eng» и «Rus».