1. В реальном коде не используйте абсолютное позиционирование, кроме редких случаев
2. У вас сейчас
MouseArea имеет нулевой размер, надо использовать
anchors.fill: parent
3. В обработчике
onClicked: backend.a вы сделали полную бессмыслицу, во-первых у бэкэнда нет такого свойства, во-вторых, вы его никак не изменили, и даже на экран не вывели.
4. Для того, чтобы методы
С++ класса стали доступны в
QML, они должны быть в секции
public slots
В данном случае можно было бы добавить в бэкэнд свойство
color, и его привязать к
Rectangle, как
color: backend.color. Ну и в
onClicked уже вызывать
backend.change(), которая обновит свойство.
А вообще, читайте
статьи,
книгу, чужие
исходники, и
документацию, чтобы не возникало подобных элементарных вопросов.