Почему в некоторых элементах управления QtQuick есть скрытая переменная?

Этот вопрос на самом деле исходит от Как перейти к определенной строке в QML TreeView. Некоторые свойства элементов QtQuick скрыты, как __listView в TreeView. Я понимаю, что есть некоторые сложные компоненты пользовательского интерфейса, основанные на каком-то другом базовом.

Qt дает возможность использовать его, но не упоминает об этом в документе, такие скрытые свойства работают должным образом. Так почему же Qt скрывает свойства? Мне его использовать?


person JustWe    schedule 30.03.2018    source источник
comment
Потому что важно сделать нашу жизнь несчастной. QML API часто печально известны отсутствием возможности настройки. Кто-то где-то предполагал, что один размер должен подходить всем, проложив путь к дополнительной функциональности, которую мог бы вообразить кто-то другой.   -  person dtech    schedule 30.03.2018


Ответы (1)


Это соглашение, созданное в начале QML в Qt4, которое мы можем найти в этом ссылка, которая, похоже, не задокументирована в Qt5:

Частная собственность

QML и JavaScript не применяют частные свойства, такие как C ++. Эти частные свойства необходимо скрыть, например, когда свойства являются частью реализации. По соглашению частные свойства начинаются с двух символов подчеркивания. Например, __area - это свойство, которое доступно, но не предназначено для публичного использования. Обратите внимание, что QML и JavaScript предоставят пользователю доступ к этим свойствам.

 Item {
     id: component
     width: 40; height: 50
     property real __area: width * height * 0.5    //not meant for outside use
 }
person eyllanesc    schedule 30.03.2018