RodTracker.ui.rodnumberwidget

TBD

class RodNumberWidget(color, parent=None, text='', pos=QtCore.QPoint(0, 0))[source]

Bases: QLineEdit

A custom QLineEdit to display rod numbers and have associated rods.

Parameters
  • color (str) – The color of the rod that this widget represents.

  • parent (QWidget, optional) – The widgets parent widget. Default is None.

  • text (str, optional) – The text displayed by the widget. Default is "".

  • pos (QPoint, optional) – The position of the widget (relative to its parent widget). Default is QPoint(0, 0).

rod_points

The starting and ending points of the rod in UNSCALED form:

[x1, y1, x2, y2]

Type

List[int]

rod_center

Center of the rod in SCALED form, i.e. adjusted to zoom levels and offsets.

Type

np.array[float]

color

The color of the rod being represented.

Type

str

activated

Notifies, that this rod has been activated.

Type

pyqtSignal(int)

copy()[source]

Copies this instance of a RodNumberWidget.

Returns

RodNumberWidget

deactivate_rod() None[source]

Handles the deactivation of this rod.

Returns

None

dropped

Notifies, that his widget has been dropped after dragging it to a new location.

Type

pyqtSignal(QPoint)

id_changed

Notifies, that this rod has changed its ID (number).

Type

pyqtSignal(QLineEdit, int)

keyPressEvent(e: QKeyEvent) None[source]

Reimplements QLineEdit.keyPressEvent(e).

Handles the confirmation and exiting during rod number editing using keyboard keys.

Parameters

e (QMouseEvent) –

Returns

None

mouseDoubleClickEvent(e: QMouseEvent) None[source]

Reimplements QLineEdit.mouseDoubleClickEvent(e).

Handles the selection of a rod number for editing.

Parameters

e (QMouseEvent) –

Returns

None

mouseMoveEvent(e: QMouseEvent) None[source]

Reimplements QLineEdit.mouseMoveEvent(e).

Handles the position updating during drag&drop of this widget by the user.

Parameters

e (QMouseEvent) –

Returns

None

mousePressEvent(event)[source]

Reimplements QLineEdit.mousePressEvent(event).

Handles the selection of a rod for corrections and drag&drop of this widget by the user.

Parameters

event (QMouseEvent) –

Returns

None

Hint

Emits:

mouseReleaseEvent(event) None[source]

Reimplements QLineEdit.mouseReleaseEvent(event).

Handles ending of drag&drop of this widget by the user.

Parameters

event (QMouseEvent) –

Returns

None

Hint

Emits:

property pen

Holds the QPen with the visual settings defined by the current state of this rod.

Returns

QPen

Raises

RodStateError

request_delete

Requests the deletion of this rod by the managing object.

Type

pyqtSignal(QLineEdit)

resolution_adjust(font_size, bound_offset=5)[source]

Sets the new font size and adapts the widgets size to it. Currently not used.

property rod_id

Property that represents the rod’s ID (number).

Returns

int

property rod_state

Holds the state of the rod.

State of the rod also determines the visual appearance.

Returns

RodState

seen: bool = False
settings_signal: pyqtBoundSignal = None

Signal to connect to for receiving updates of settings.

Must be set before the creation of an instance to be used by that instance.

By default None.

Type

pyqtBoundSignal

classmethod update_defaults(settings: dict) None[source]

Catches updates of the settings from a Settings class.

Checks for the keys relevant to itself and updates the corresponding class attributes. Updates those attributes to already have the correct values when a new RodNumberWidget is created.

Parameters

settings (dict) –

Returns

None

update_settings(settings: dict)[source]

Catches updates of the settings from a Settings class.

Checks for the keys relevant to itself and updates the corresponding attributes. Redraws itself with the new settings in place, if settings were changed.

Parameters

settings (dict) –

Returns

None

class RodState(value)[source]

Bases: Enum

States of a rod.

CHANGED = 3
CONFLICT = 4
EDITING = 2
NORMAL = 0
SELECTED = 1
exception RodStateError[source]

Bases: ValueError

Custom error that is raised when an unknown RodState is encountered.

class RodStyle(value)[source]

Bases: str, Enum

Styles for rod numbers.

CHANGED = 'background-color: transparent;color: green; font: {}px; font-weight: bold;'
CONFLICT = 'background-color: transparent;color: red; font: {}px; font-weight: bold;'
GENERAL = 'background-color: transparent;color: rgb({},{},{}); font: {}px; font-weight: bold;'
SELECTED = 'background-color: transparent;color: white; font: {}px; font-weight: bold;'