修复点击显示光谱功能的问题:打开一副影像后,点击显示光谱出现十字架,然后移除图层后,再打开图层就会出现问题

This commit is contained in:
tangchao0503
2026-03-16 14:07:58 +08:00
parent 6d8c2f0419
commit 7473a45f41
7 changed files with 70 additions and 82 deletions

View File

@ -103,6 +103,50 @@ bool Mapcavas::HasImage()
}
}
void Mapcavas::updateCrosshair(double sceneX, double sceneY)
{
QPen pen(Qt::red, 2.0);
pen.setCosmetic(true); // constant screen-width regardless of zoom
if (!m_hLine)
{
m_hLine = m_qtGraphicsScene->addLine(0, 0, 0, 0, pen);
m_hLine->setZValue(1e9);
}
if (!m_vLine)
{
m_vLine = m_qtGraphicsScene->addLine(0, 0, 0, 0, pen);
m_vLine->setZValue(1e9);
}
m_hLine->setPen(pen);
m_vLine->setPen(pen);
m_hLine->setLine(sceneX - m_CrosshairHalfLen, sceneY,
sceneX + m_CrosshairHalfLen, sceneY);
m_vLine->setLine(sceneX, sceneY - m_CrosshairHalfLen,
sceneX, sceneY + m_CrosshairHalfLen);
}
void Mapcavas::removeCrosshair()
{
if (m_hLine)
{
if (m_hLine->scene())
m_hLine->scene()->removeItem(m_hLine);
delete m_hLine;
m_hLine = nullptr;
}
if (m_vLine)
{
if (m_vLine->scene())
m_vLine->scene()->removeItem(m_vLine);
delete m_vLine;
m_vLine = nullptr;
}
}
void Mapcavas::wheelEvent(QWheelEvent *event)
{
// Always let the tool have a chance first