как работает элемент QtObject в QML

#qt #qml #qt-quick

#qt #qml #qt-быстрый

Вопрос:

Я просто хочу знать, что делает этот QtObject elements, кажется, что он реагирует, потому что в руководстве, которому я следовал, используйте его для обновления цвета кнопки, поэтому я хочу знать, как я могу его использовать, и как он работает, и как я могу использовать в других случаях.

введите описание изображения здесь

Комментарии:

1. покажите свой код в виде текста

Ответ №1:

во время работы с файлом QML необходимо скрыть некоторые свойства элемента верхнего уровня (что-то вроде частной переменной и методов). лучший способ найти правильный способ инкапсуляции в QML — использовать внутренний элемент, такой как QtObject . в вашем коде используется QtObject для блокирования прямого внешнего доступа к цвету кнопки и привязки цвета к состоянию элемента кнопки.

Ответ №2:

Я полагаю, вы читали документы? A QtObject — это всего лишь самый базовый тип объекта QML. Сам по себе он ничего не делает. Это не визуально. Таким образом, он просто используется для хранения других свойств.

В приведенном вами примере он используется как способ создания псевдособственныхпеременных. В QML нет такого понятия, как частные переменные, но если вы помещаете свойства внутрь объекта, то они недоступны ни для чего за пределами этого файла (если явно не представлены). Это все, для чего он используется в вашем примере. Если вы возьмете свойство dynamicColor и переместите его за пределы QtObject , код все равно будет работать точно так же. Единственное отличие будет заключаться в том, что другие файлы QML будут иметь доступ (и, следовательно, изменять) dynamicColor .