From a81f5afcaff79de9435aa9089bcd6daffb3e9995 Mon Sep 17 00:00:00 2001 From: Silas Dohm <silas@sdohm.xyz> Date: Tue, 21 Sep 2021 10:07:28 +0200 Subject: [PATCH] Labels support colors --- include/turtlesim/turtle.h | 1 + src/turtle.cpp | 4 +++- srv/SetLabel.srv | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/turtlesim/turtle.h b/include/turtlesim/turtle.h index 901639c..e35615f 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 75db62b..a4d9dcd 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 772f305..4e50d87 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 -- GitLab