PyDMWidget

API Documentation

class pydm.widgets.base.PyDMWidget(init_channel=None)[source]

Bases: PyDMPrimitiveWidget

PyDM base class for Read-Only widgets. This class implements all the functions of connection, alarm handling and more.

Parameters

init_channel (str, optional) – The channel to be used by the widget.

PyDMToolTip

The tooltip for this widget.

Returns

toolTip – tooltip info

Return type

str

alarmSensitiveBorder

Whether or not the border color changes when alarm severity changes.

Returns

True means that the border color will be changed in case of alarm severity changes.

Return type

bool

alarmSensitiveContent

Whether or not the content color changes when alarm severity changes.

Returns

True means that the content color will be changed in case of alarm severity changes.

Return type

bool

alarmSeverityChanged(new_alarm_severity)[source]

PyQT Slot for changes on the Alarm Severity of the Channel This slot sends the severity value to the `alarm_severity_changed` callback.

Parameters

new_alarm_severity (int) –

alarm_limit_changed(which: AlarmLimit, new_limit: float) None[source]

Callback invoked when the channel receives new alarm limit values.

Parameters
  • which (AlarmLimit) – Which alarm limit was changed. “HIHI”, “HIGH”, “LOW”, “LOLO”

  • new_limit (float) – New value for the alarm limit

alarm_severity_changed(new_alarm_severity)[source]

Callback invoked when the Channel alarm severity is changed. This callback is not processed if the widget has no channel associated with it. This callback handles the composition of the stylesheet to be applied and the call to update to redraw the widget with the needed changes for the new state.

Parameters

new_alarm_severity (int) – The new severity where 0 = NO_ALARM, 1 = MINOR, 2 = MAJOR and 3 = INVALID

channel

The channel address in use for this widget.

Returns

channel – Channel address

Return type

str

channelValueChanged(new_val)[source]

PyQT Slot for changes on the Value of the Channel This slot sends the value to the `value_changed` callback.

Parameters

new_val (int, float, str, bool or np.ndarray) –

channels()[source]

Returns the channels being used for this Widget.

Returns

channels – List of PyDMChannel objects

Return type

list

channels_for_tools()[source]

Returns a list of channels useful for external tools. The default implementation here is just to return self.channels(), but some widgets will want to re-implement this, especially if they have multiple channels, but only one real ‘signal’ channel.

Return type

list

check_enable_state()[source]

Checks whether or not the widget should be disable. This method also disables the widget and add a Tool Tip with the reason why it is disabled.

connectionStateChanged(connected)[source]

PyQT Slot for changes on the Connection State of the Channel This slot sends the connection state to the `connection_changed` callback.

Parameters

connected (bool) –

connection_changed(connected)[source]

Callback invoked when the connection state of the Channel is changed. This callback acts on the connection state to enable/disable the widget and also trigger the change on alarm severity to ALARM_DISCONNECTED.

Parameters

connected (int) – When this value is 0 the channel is disconnected, 1 otherwise.

ctrl_limit_changed(which, new_limit)[source]

Callback invoked when the Channel receives new control limit values.

Parameters
  • which (str) – Which control limit was changed. “UPPER” or “LOWER”

  • new_limit (float) – New value for the control limit

enumStringsChanged(new_enum_strings)[source]

PyQT Slot for changes on the string values of the Channel This slot sends the new strings to the `enum_strings_changed` callback.

Parameters

new_enum_strings (tuple) –

enum_strings_changed(new_enum_strings)[source]

Callback invoked when the Channel has new enum values. This callback also triggers a value_changed call so the new enum values to be broadcasted

Parameters

new_enum_strings (tuple) – The new list of values

eventFilter(obj, event)[source]

Filters events on this object.

Params

objectQObject

The object that is being handled.

eventQEvent

The event that is happening.

returns

True to stop the event from being handled further; otherwise return false.

rtype

bool

force_redraw()[source]

PyQT Slot to force a redraw on the widget.

generate_context_menu()[source]

Generates the custom context menu, and populates it with any external tools that have been loaded. PyDMWidget subclasses should override this method (after calling superclass implementation) to add the menu.

Return type

QMenu

get_ctrl_limits()[source]

Returns a tuple with the control limits for the channel

Returns

(lower, upper) – Lower and Upper control limits

Return type

tuple

static get_designer_icon()

Icon for usage in Qt designer.

init_for_designer()[source]

Method called after the constructor to tweak configurations for when using the widget with the Qt Designer

lowerCtrlLimitChanged(new_limit)[source]

PyQT Slot for changes on the lower control limit value of the Channel This slot sends the new limit value to the `ctrl_limit_changed` callback.

Parameters

new_limit (float) –

lower_alarm_limit_changed(new_limit: float)[source]

PyQT slot for changes to the LOLO alarm limit of a PV

Parameters

new_limit (float) – The new value for the LOLO limit

lower_warning_limit_changed(new_limit: float)[source]

PyQT slot for changes to the LOW alarm limit of a PV

Parameters

new_limit (float) – The new value for the LOW limit

opacity()

Float value between 0 and 1 representing the opacity of the widget where 0 means transparent.

Returns

opacity

Return type

float

open_context_menu(ev)[source]

Handler for when the Default Context Menu is requested.

Parameters

ev (QEvent) –

parseTip(new_tip)[source]

Fetch the object attribute data for the tooltip.

Parameters

new_tip (str) – given tooltip string

Returns

tip_with_attribute_info – ToolTip string which has had the attribute names replaced with the attribute values.

Return type

str

rule_evaluated(payload)

Callback called when a rule has a new value for a property.

Parameters

payload (dict) – Dictionary containing the rule name, the property to be set and the new value.

Return type

None

rules

JSON-formatted list of dictionaries, with rules for the widget.

Return type

str

setX(new_x)[source]

Set the X position of the Widget on the screen.

Parameters

new_x (int) – The new X position

Return type

None

setY(new_y)[source]

Set the Y position of the Widget on the screen.

Parameters

new_y (int) – The new Y position

Return type

None

set_opacity(val)

Float value between 0 and 1 representing the opacity of the widget where 0 means transparent.

Parameters

val (float) – The new value for the opacity

show_address_tooltip(event)

Show the PyDMTooltip and copy address to clipboard

This is intended to replicate the behavior of the “middle click” from EDM. If the QWidget does not have a valid PyDMChannel nothing will be displayed

timestamp_changed(new_timestamp)[source]

Callback invoked when the Channel has new timestamp values.

Parameters

new_timestamp (float) – The new timestamp value

upperCtrlLimitChanged(new_limit)[source]

PyQT Slot for changes on the upper control limit value of the Channel This slot sends the new limit value to the `ctrl_limit_changed` callback.

Parameters

new_limit (float) –

upper_alarm_limit_changed(new_limit: float)[source]

PyQT slot for changes to the HIHI alarm limit of a PV

Parameters

new_limit (float) – The new value for the HIHI limit

upper_warning_limit_changed(new_limit: float)[source]

PyQT slot for changes to the HIGH alarm limit of a PV

Parameters

new_limit (float) – The new value for the HIGH limit

value_changed(new_val)[source]

Callback invoked when the Channel value is changed.

Parameters

new_val (str, int, float, bool or np.ndarray) – The new value from the channel. The type depends on the channel.

widget_ctx_menu()[source]

Fetch the Widget specific context menu which will be populated with additional tools by assemble_tools_menu.

Returns

If the return of this method is None a new QMenu will be created by assemble_tools_menu.

Return type

QMenu or None

PyDMToolTip Instructions

The PyDMToolTip property field takes a string. In the PyDMToolTip property field, the user can include the tag $(pv_value) to get the value of the channel displayed on the tool tip.

Note

If the toolTip property field is:

The value of the channel is $(pv_value)

The toolTip would read (assuming the value is 10 in this example):

The value of the channel is 10

A period followed by a field name can retrieve other properties of the channel (see the table bellow for all channel properties and associated field names.)

Note

If the toolTip property field is:

The timestamp of the channel is $(pv_value.TIME)

The toolTip would read:

The timestamp of the channel is 2022-09-15 09:56:47.099340

channel properties

pv_value.field

Description

channel value

$(pv_value)

Returns the value of the channel

channel address

.address

Returns the address of the channel

connection

.connection

Returns the connection status

alarm severity

.SEVR

Returns the alarm severity

enum string

.enum_strings

engineering unit

.EGU

Returns the engineering unit

precision

.PREC

Returns the precision of the channel

upper ctrl limit

.DRVH

Returns the upper ctrl limit

lower ctrl limit

.DRVL

Returns the lower ctrl limit

upper alarm limit

.HIHI

Returns the upper alarm limit

lower alarm limit

.LOLO

Returns the lower alarm limit

upper warning limit

.HIGH

Returns the upper warning limit

lower warning limit

.LOW

Returns the lower warning limit

timestamp

.TIME

Returns the timestamp of the channel