diff --git a/include/turtlesim/turtle.h b/include/turtlesim/turtle.h index 901639cfc9d6db7687290c2b4212d8028faa14d0..e35615fb796d486381729f0d3d6d6c6b387e5f15 100644 --- a/include/turtlesim/turtle.h +++ b/include/turtlesim/turtle.h @@ -98,6 +98,7 @@ private: float meter_; bool label_on_ = false; + QPen pen_label_; QString label_ = ""; struct TeleportRequest diff --git a/src/turtle.cpp b/src/turtle.cpp index 75db62bc789d4eeee8c0df7e5033ea4f63fbaf6f..a4d9dcd30eb11b6eedc18c57a125dcb94c071a5b 100644 --- a/src/turtle.cpp +++ b/src/turtle.cpp @@ -94,6 +94,8 @@ bool Turtle::setPenCallback(turtlesim::SetPen::Request& req, turtlesim::SetPen:: bool Turtle::setLabelCallback(turtlesim_xl::SetLabel::Request& req, turtlesim_xl::SetLabel::Response&){ Turtle::label_ = QString(req.name.c_str()); label_on_ = req.on; + QPen pen(QColor(req.r, req.g, req.b)); + pen_label_ = pen; return true; } bool Turtle::teleportRelativeCallback(turtlesim::TeleportRelative::Request& req, turtlesim::TeleportRelative::Response&) @@ -227,7 +229,7 @@ void Turtle::paint(QPainter& painter) if(label_on_){ QPointF pl = pos_ * meter_; pl.rx() -= 0.3 * turtle_rotated_image_.width(); - painter.setPen(Qt::red); + painter.setPen(pen_label_); painter.setFont(QFont("Arial",meter_/2)); painter.drawText(pl,Turtle::label_); } diff --git a/srv/SetLabel.srv b/srv/SetLabel.srv index 772f305d6f2141ced57f2db61c18fe9509e53105..4e50d87f6cc6e82bf851413fe933192435a4e7ad 100644 --- a/srv/SetLabel.srv +++ b/srv/SetLabel.srv @@ -1,2 +1,5 @@ string name +uint8 r +uint8 g +uint8 b uint8 on \ No newline at end of file