Настройка поведения QToolTip

Когда убираем курсор с линии, то всплывающее окно с информацией исчезает
This commit is contained in:
2025-12-15 17:04:30 +03:00
parent ee694fb772
commit c7d7aa30c8
2 changed files with 15 additions and 1 deletions

View File

@@ -598,15 +598,28 @@ void Canvas::paintEvent(QPaintEvent* event)
} }
} }
void Canvas::leaveEvent(QEvent* event)
{
Q_UNUSED(event);
QToolTip::hideText();
}
#ifdef _DEBUG #ifdef _DEBUG
void Canvas::showObjectTag(QPointF pos) void Canvas::showObjectTag(QPointF pos)
{ {
QPointF l = screenToLogical(pos); QPointF l = screenToLogical(pos);
Line* lineUnderCursor = findAt(l, 2.0); Line* lineUnderCursor = findAt(l, 2.0);
if (lineUnderCursor && lineUnderCursor != draggedLine) { if (lineUnderCursor && lineUnderCursor != draggedLine) {
QString Text = QString("Tag Line: %1").arg(lineUnderCursor->get_tag()); QPointF p1(*lineUnderCursor->p1.x, *lineUnderCursor->p1.y);
QPointF p2(*lineUnderCursor->p2.x, *lineUnderCursor->p2.y);
QLineF info_line(p1, p2);
QString Text = QString("Line %1\nLength = %2mm")
.arg(lineUnderCursor->get_tag() + 1)
.arg(info_line.length());
QToolTip::showText(mapToGlobal(pos.toPoint()), Text, this); QToolTip::showText(mapToGlobal(pos.toPoint()), Text, this);
} }
else
QToolTip::hideText();
} }
#endif #endif

View File

@@ -60,6 +60,7 @@ protected:
void mouseMoveEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override;
void paintEvent(QPaintEvent* event) override; void paintEvent(QPaintEvent* event) override;
void leaveEvent(QEvent* event) override;
private: private: