| 
 Название: Пропадание элемента при добавлении трансформации
 Отправлено: ctin от Сентября 14, 2012,  14:40
 
 Доброго времени суток! Создал элемент: вращающуюся стрелку. Существующая проблема: стрелка не отображается пока есть последняя строка (transform). Стоит её закомментировать - и всё работает. Подскажите пожалуйста, в чем может быть проблема? Image {id: arrow
 smooth: true
 source: "./newImages/Arrow.png"
 width: arrow.sourceSize.width / background.sourceSize.width *background.width
 height: arrow.sourceSize.height / background.sourceSize.height * background.height
 x: 60 / background.sourceSize.width * background.width
 y: 63 / background.sourceSize.height * background.height
 transform: Rotation { origin.x: 25; origin.y: 25; angle: 45}
 }
 Название: Re: Пропадание элемента при добавлении трансформации
 Отправлено: mutineer от Сентября 14, 2012,  15:32
 
 в консоль ворнинги выбрасывает? 
 Название: Re: Пропадание элемента при добавлении трансформации
 Отправлено: ctin от Сентября 14, 2012,  15:36
 
 Запускается E:\testQtProjects\cupBoard\debug\cupBoard.exe... Qml debugging is enabled. Only use this in a safe environment! LEAK: 220 Structure // при закрытии программы E:\testQtProjects\cupBoard\debug\cupBoard.exe завершился с кодом 0 Весь текст программы: import QtQuick 1.0
 /*!
 The base canvas for all QML drawing.
 */
 
 
 Rectangle {
 id: dial
 property int value: 0
 width: 200
 height: 400
 //color: "transparent"
 
 Keys.onPressed: {
 if (event.key >= Qt.Key_0 && event.key <= Qt.Key_9) {
 dial.value = event.key - Qt.Key_0
 event.accepted = true;
 }
 }
 
 Image {
 id: background
 smooth: true
 source: dial.focus ? "./newImages/ArrowBackground_focused.png"
 : mouseArea.containsMouse ? "./newImages/ArrowBackground_hovered.png"
 : "./newImages/ArrowBackground.png"
 width: parent.width
 height: parent.height / 2
 Image {
 id: arrow
 smooth: true
 source: "./newImages/Arrow.png"
 width: arrow.sourceSize.width / background.sourceSize.width *background.width
 height: arrow.sourceSize.height / background.sourceSize.height * background.height
 x: 60 / background.sourceSize.width * background.width
 y: 63 / background.sourceSize.height * background.height
 transform: Rotation {
 origin.x: arrow.sourceSize.width / 2
 origin.y: arrow.sourceSize.height / 2
 angle: (dial.value < 10 ? dial.value : 0) * 36.0 + 105; //105 - поправка, так как на фото стрелочка показывает на 7
 Behavior on angle {
 SpringAnimation {damping: 0.5; spring : 5; modulus: 360 }
 }
 }
 /*transform: Rotation {
 origin.x: arrow.sourceSize.width / 2
 origin.y: arrow.sourceSize.height / 2
 angle: (dial.value < 10 ? dial.value : 0) * 36.0 + 105; //105 - поправка, так как на фото стрелочка показывает на 7
 Behavior on angle {
 SpringAnimation {damping: 0.5; spring : 5; modulus: 360 }
 }
 }*/
 }
 
 MouseArea {
 function calculateValue() {
 dial.focus = true
 if(mouseX == background.width / 2)
 return
 var angle = Math.atan((mouseY - background.height / 2)
 / (mouseX - background.width / 2));
 //text.text = string(mouseY)
 angle *= (180 / 3.1415926);
 angle += 90 + (mouseX > background.width / 2) * 180
 var sector = (360.0 / 10);
 if(angle > 342)
 angle = 0
 dial.value = Math.floor((angle + 18) / sector)
 }
 
 id: mouseArea
 hoverEnabled: true
 anchors.fill: parent
 onPositionChanged:
 if(mouseArea.pressedButtons == Qt.LeftButton)
 calculateValue();
 onPressed: calculateValue()
 
 }
 }
 }
 Название: Re: Пропадание элемента при добавлении трансформации
 Отправлено: lighting от Сентября 14, 2012,  17:07
 
 Косяк где-то в расчетах width и height элемента arrow, если их забить фиксированными значениями то все нормально работает.Кстати даже без этих исправлений все работает, но для того чтобы arrow отобразилась надо изменить размер окна.
 
 Название: Re: Пропадание элемента при добавлении трансформации
 Отправлено: ctin от Сентября 14, 2012,  17:31
 
 спасибо! Действительно, буду внимательнее! 
 
 |