Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QClickableLabel Class Reference

A QLabel with multiple hotspots, that can be clicked. More...

#include <qclickablelabel.h>

Inheritance diagram for QClickableLabel:
Collaboration diagram for QClickableLabel:

Signals

void mousePressed (const QString &hotspotName)
 
void mousePressed (unsigned int hotspotIndex)
 
void mouseReleased (const QString &hotspotName)
 
void mouseReleased (unsigned int hotspotIndex)
 

Public Member Functions

 QClickableLabel (QWidget *parent, Qt::WindowFlags f=nullptr)
 
 QClickableLabel (const QString &text, QWidget *parent, Qt::WindowFlags f=nullptr)
 
 ~QClickableLabel () override
 
void AddHotspot (const QString &name, const QRect position)
 
void RemoveHotspot (const QString &name)
 
void RemoveHotspot (unsigned int hotspotIndex)
 
void RemoveAllHotspots ()
 

Protected Types

typedef std::vector< QRect > RectVectorType
 
typedef std::map< QString, unsigned int > NameToIndexMapType
 
typedef std::map< unsigned int, QString > IndexToNameMapType
 

Protected Member Functions

void mousePressEvent (QMouseEvent *e) override
 
void mouseReleaseEvent (QMouseEvent *e) override
 
unsigned int matchingRect (const QPoint &p)
 returns index == m_Hotspots.size() if nothing is hit More...
 

Protected Attributes

RectVectorType m_Hotspots
 
NameToIndexMapType m_HotspotIndexForName
 
IndexToNameMapType m_HotspotNameForIndex
 

Detailed Description

A QLabel with multiple hotspots, that can be clicked.

Specially useful in connection with a pixmap. Stretched images should be avoided, because the hotspots will not be adjusted in any way.

Definition at line 30 of file qclickablelabel.h.

Member Typedef Documentation

◆ IndexToNameMapType

typedef std::map<unsigned int, QString> QClickableLabel::IndexToNameMapType
protected

Definition at line 63 of file qclickablelabel.h.

◆ NameToIndexMapType

typedef std::map<QString, unsigned int> QClickableLabel::NameToIndexMapType
protected

Definition at line 62 of file qclickablelabel.h.

◆ RectVectorType

typedef std::vector<QRect> QClickableLabel::RectVectorType
protected

Definition at line 59 of file qclickablelabel.h.

Constructor & Destructor Documentation

◆ QClickableLabel() [1/2]

QClickableLabel::QClickableLabel ( QWidget *  parent,
Qt::WindowFlags  f = nullptr 
)

Definition at line 19 of file qclickablelabel.cpp.

◆ QClickableLabel() [2/2]

QClickableLabel::QClickableLabel ( const QString &  text,
QWidget *  parent,
Qt::WindowFlags  f = nullptr 
)

Definition at line 23 of file qclickablelabel.cpp.

◆ ~QClickableLabel()

QClickableLabel::~QClickableLabel ( )
override

Definition at line 27 of file qclickablelabel.cpp.

Member Function Documentation

◆ AddHotspot()

void QClickableLabel::AddHotspot ( const QString &  name,
const QRect  position 
)

◆ matchingRect()

unsigned int QClickableLabel::matchingRect ( const QPoint &  p)
protected

returns index == m_Hotspots.size() if nothing is hit

Definition at line 86 of file qclickablelabel.cpp.

References m_Hotspots.

Referenced by mousePressEvent(), and mouseReleaseEvent().

◆ mousePressed [1/2]

void QClickableLabel::mousePressed ( const QString &  hotspotName)
signal

Referenced by mouseReleaseEvent().

◆ mousePressed [2/2]

void QClickableLabel::mousePressed ( unsigned int  hotspotIndex)
signal

◆ mousePressEvent()

void QClickableLabel::mousePressEvent ( QMouseEvent *  e)
overrideprotected

Definition at line 66 of file qclickablelabel.cpp.

References m_HotspotNameForIndex, m_Hotspots, matchingRect(), and mouseReleased().

◆ mouseReleased [1/2]

void QClickableLabel::mouseReleased ( const QString &  hotspotName)
signal

Referenced by mousePressEvent().

◆ mouseReleased [2/2]

void QClickableLabel::mouseReleased ( unsigned int  hotspotIndex)
signal

◆ mouseReleaseEvent()

void QClickableLabel::mouseReleaseEvent ( QMouseEvent *  e)
overrideprotected

Definition at line 76 of file qclickablelabel.cpp.

References m_HotspotNameForIndex, m_Hotspots, matchingRect(), and mousePressed().

◆ RemoveAllHotspots()

void QClickableLabel::RemoveAllHotspots ( )

Definition at line 59 of file qclickablelabel.cpp.

References m_HotspotIndexForName, m_HotspotNameForIndex, and m_Hotspots.

◆ RemoveHotspot() [1/2]

void QClickableLabel::RemoveHotspot ( const QString &  name)

Definition at line 38 of file qclickablelabel.cpp.

References m_HotspotIndexForName.

◆ RemoveHotspot() [2/2]

void QClickableLabel::RemoveHotspot ( unsigned int  hotspotIndex)

Definition at line 48 of file qclickablelabel.cpp.

References m_HotspotIndexForName, m_HotspotNameForIndex, and m_Hotspots.

Member Data Documentation

◆ m_HotspotIndexForName

NameToIndexMapType QClickableLabel::m_HotspotIndexForName
protected

Definition at line 64 of file qclickablelabel.h.

Referenced by AddHotspot(), RemoveAllHotspots(), and RemoveHotspot().

◆ m_HotspotNameForIndex

IndexToNameMapType QClickableLabel::m_HotspotNameForIndex
protected

◆ m_Hotspots

RectVectorType QClickableLabel::m_Hotspots
protected

The documentation for this class was generated from the following files: