Название: Почему-то не вычисляется выражение в QML (с картинками) Отправлено: xintrea от Декабрь 03, 2018, 19:55 Делаю я тип MetallFramePlanarButton.qml для отрисовки кнопки. Делается на базе типа Item. Предполагается, что кнопка квадратная. В нем сделано свойство scaleFactor (используемое для масштабирования внутренних элементов):
Код: Item { Используется эта кнопка с указанием ширины: Код: MetallFramePlanarButton { Так вот, ставлю я брекпоинт в функцию setButtonFrameSize(), чтобы посмотреть как вычисляются w и h. И вижу, что они равны нулю: http://i.piccy.info/i9/2094984c903235facac02d77768cd2b3/1543847738/275438/1286422/qml_trouble_function.png Почему же, например, w равно нулю? Потому что: Код: buttonFrame.implicitWidth = 169 Умножение на 0 дает 0. Теперь вопрос, а почему root.scaleFactor нуливой? Дублирую выражение, которым это свойство вычисляется, чтобы оно вычислилось в отладчике (его видно справа вверху, нижняя строчка: Код: buttonFrame.implicitWidth===0 ? 0 : root.width/buttonFrame.implicitWidth И это выражение дает значение 0.53. Это совсем не 0! http://i.piccy.info/i9/1bf478f285b85c332fa833252893bd8b/1543853567/207581/1286422/scr0055.jpg То есть, если вычислить выражение в отладчике, оно дает ненулевое значение. То же самое выражение, присвоенное свойству scaleFactor, имеет значение 0. Почему так? |