Я создал приложение Hello World в QML. Теперь я хочу узнать, как изменить текст из «Hello World» на «Goodbye World» из C++.QML C++ До свидания Мир
QML выглядит так:
import QtQuick 2.6
Rectangle {
property alias mouseArea: mouseArea
width: 360
height: 360
MouseArea {
id: mouseArea
anchors.fill: parent
}
Text {
id: helloText
anchors.centerIn: parent
text: "Hello World"
}
}
Я пытался следовать
https://wiki.qt.io/Introduction_to_Qt_Quick#Integration_with_C.2B.2B_applications
но не повезло. Код кажется неполным. Например, он кончает информацию с эллипсов, как так:
QDeclarativeContext *context = …;
И я не могу найти для заголовка QDeclarativeContext, даже если он не сделал. Я подозреваю, что документация устарела, но я не уверен.
В любом случае, я просто хочу увидеть простой пример, который позволяет мне изменить текст из «Hello World» на «Goodbye World» изнутри программы на C++.
Я смущен вашим комментарием «Я бы рекомендовал не смешивать QML с C++». Вы хотите сказать, что не рекомендуете изменять отображение пользовательского интерфейса на C++? Термин «смешение» для меня неясен. – Mitch
@Mitch - я имею в виду «найти объект и делать для него случайные вещи» - взаимодействие между двумя слоями должно быть ограничено сигналами, слотами и свойствами. В хорошо спроектированном API не было бы необходимости вообще общаться с графическим интерфейсом с C++. – dtech
Ваш код на C++ должен быть хорошо инкапсулированным классам, которые вы просто «подключаете» к QML с помощью сигналов, слотов и свойств, вам нужна хорошая изоляция и разделение между логикой C++ и графическим интерфейсом QML с четко определенным интерфейсом для межсоединения. Держите вещи там, где они принадлежат, иначе вы создадите плохой дизайн и предложите проблемы. – dtech