2016-03-21 3 views
0

Есть ли встроенный метод для рисования стрелки/указателя в конце строки в Qt?Qt 5.5 рисование указателя

Я знаю, что могу сделать это сам, но любопытно узнать, есть ли способ сделать это, я ищу в Интернете и ничего не нашел.

Я хочу, чтобы можно было вращать линию, и стрелка вращается вместе с ней.

Ниже изображение, которое я сейчас работаю:

enter image description here

Я хотел бы обратить на стрелку в конце пунктирной линии, она должна вращаться с пунктирная линия указывает вокруг от дна оставил.

[править] В конце концов я использовал полигон и повернуты, что:

enter image description here

код, чтобы добавить многоугольник иглы:

Polygon clsMyClass::plygnGetNeedle(QPoint* pptOrigin 
             ,int intRadius 
             ,float fltAngle) { 
     const int cintNeedleHalfWidth = 4; 

     QPolygon plyNeedle; 
     int intX = pptOrigin->x(), intY = pptOrigin->y(); 
     plyNeedle << QPoint(intX - cintNeedleHalfWidth, intY) 
        << QPoint(intX, intY + cintNeedleHalfWidth) 
        << QPoint(intX + intRadius - cintNeedleHalfWidth, intY) 
        << QPoint(intX, intY- cintNeedleHalfWidth); 
     return QTransform().translate(intX, intY) 
          .rotate(fltAngle) 
          .translate(-intX, -intY) 
          .map(plyNeedle); 
    } 
+1

«Я ищу в Интернете и ничего не нашел». Это потому, что они действительно сохраняют приятные функции скрытыми;) – dtech

ответ

1

Я не помню, что-то вроде этого в Qt , Что касается положения и угла стрелки, вы можете легко найти их, если вы используете что-то вроде QPainterPath's angleAtPercent() и pointAtPercent().

+0

Спасибо, я буду исследовать, atm, рисовать стрелку с QPolygon – SPlatten

+0

Теперь я нарисовал стрелку с помощью QPolygon и QPainterPath, теперь могу ли я легко прикрепить многоугольник к линии, не имея выработать все точки и затем повернуть его по линии? – SPlatten

+1

@SPlatten - вы можете просто преобразовать сам художник, вместо того, чтобы вращать линию и стрелки, просто поверните художника – dtech

Смежные вопросы