Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка приложений на C++_Практическая работа №12

.pdf
Скачиваний:
1
Добавлен:
07.06.2025
Размер:
805.43 Кб
Скачать

model: ListModel { ListElement { text: "Item 1" } ListElement { text: "Item 2" } ListElement { text: "Item 3" }

}

delegate: Item {

width: listView.width height: 50

Text {

text: model.text anchors.centerIn: parent

}

}

AddAnimation { id: animation target: listView property: "width" from: 0

to: 500 duration: 1000

easing.type: Easing.InOutQuad

}

}

Button {

5

id: btn

text: "Add Item" anchors {

centerIn: parent

//horizontalCenter: parent.horizontalCenter //top: listView.bottom

topMargin: 30

}

onClicked: {

listView.model.append({ text: "New Item" }) animation.running = true

}

}

}

6

Модуль 3 Тема 3.8

1

1. Приведите пример применения наиболее распространенного способа

маркировки строк — функции qsTr().

Text {

id: txt1;

anchors.centerIn: parent text: qsTr("Back");

}

Этот код делает “Back” ключевой записью в файлах перевода. Во время выполнения система перевода ищет ключевое слово “Back”, а затем получает соответствующее значение перевода для текущей локали системы. Результат возвращается свойству text, и пользовательский интерфейс показывает соответствующий перевод “Back” для текущей локали.

Используйте %x для вставки параметров в строку

Разные языки объединяют слова в разном порядке, поэтому не рекомендуется создавать предложения, объединяя слова и данные. Вместо этого используйте % для вставки параметров в строки. Например, в

следующем фрагменте есть строка с двумя числовыми параметрами %1 и %2.

Эти параметры вставляются с .arg() функциями.

Text {

text: qsTr("File %1 of %2").arg(counter).arg(total)

}

%1 относится к первому параметру и %2 относится ко второму параметру, поэтому этот код выводит что-то вроде: «Файл 2 из 3».

2. Приведите пример кода с использованием QT_TR_NOOP() для

транслируемых текстовых строк данных

Транслируемые - это значит переводимых.

2

Если пользователь меняет язык системы без перезагрузки, в зависимости от системы строки в массивах и моделях списков, а также другие структуры данных могут не обновляться автоматически. Чтобы принудительно обновлять тексты при отображении в пользовательском интерфейсе,

необходимо объявить строки с атрибутом QT_TR_NOOP() макрос. Затем,

когда вы заполняете объекты для отображения, вам нужно явно получить перевод для каждого текста. Например:

ListModel {

id: myListModel; ListElement {

name: QT_TR_NOOP("Helsinki");

}

}

Text {

text: qsTr(myListModel.get(0).name);

}

3