2016-07-18 2 views
0

Я хочу иметь анимированную границу над Image. Но, к моему удивлению, только Rectangle может предоставить border. Я хочу, чтобы пунктирная линия двигалась вокруг Image. Как получить такую ​​анимацию. Это мой пример кода, который просто предоставляет границу Image.Граница изображения в QML

Rectangle { 
    width: image.width + 5 
    height: image.height + 5 
    border.color: "yellow" 
    border.width: 5 
    color: "transparent" 

    Image { 
     id: image 
     anchor.centerIn: parent 
     source: "" 
    } 
} 
+0

Да, 'Rectangle.border' не позволяет сделать это. В качестве обходного пути вы можете использовать 'Canvas' вместо этого. – folibis

+0

Я никогда раньше не использовал «Холст». Можете ли вы привести мне пример. –

ответ

0

Поскольку Canvas элемент в QML не метод setLineDash() в JavaScript холст имеет (но вы можете эмулировать см here), самый простой способ (IMHO) является использование BorderImage с помощью пользовательского изображения с пунктиром. Пример использования BorderImage here.

Также вы можете написать свой собственный элемент QML, полученный из QQuickPaintedItem или QQuickItem в C++.

0

Возьмите BoarderImage вместо прямоугольника:

Image { 
    BoarderImage { 
    }  
} 
Смежные вопросы