PyDMTemplateRepeater

class pydm.widgets.template_repeater.PyDMTemplateRepeater(parent=None)[source]

Bases: QFrame, PyDMPrimitiveWidget, LayoutType

PyDMTemplateRepeater takes a .ui file with macro variables as a template, and a JSON file (or a list of dictionaries) with a list of values to use to fill in the macro variables, then creates a layout with one instance of the template for each item in the list.

It can be very convenient if you have displays that repeat the same set of widgets over and over - for instance, if you have a standard set of controls for a magnet, and want to build a display with a list of controls for every magnet, the Template Repeater lets you do that with a minimum amount of work: just build a template for a single magnet, and a JSON list with the data that describes all of the magnets.

Parameters:

parent (optional) – The parent of this widget.

clear()[source]

Clear out any existing instances of the template inside the widget.

countShownInDesigner

The number of instances to show in Qt Designer. This property has no effect outside of Designer.

Return type:

int

property data

The dictionary used by the widget to fill in each instance of the template. This property will be overwritten if the user changes the dataSource property.

dataSource

The path to the JSON file or a valid JSON string to fill in each instance of the template.

Return type:

str

layoutType

The layout type to use.

Return type:

LayoutType

open_template_file(variables=None)[source]

Opens the widget specified in the templateFilename property.

Parameters:

variables (dict) – A dictionary of macro variables to apply when loading, in addition to all the macros specified on the template repeater widget.

Returns:

display

Return type:

QWidget

rebuild()[source]

Clear out all existing widgets, and populate the list using the template file and data source.

templateFilename

The path to the .ui file to use as a template.

Return type:

str

Note

See QFrame Documentation for all inherited properties and methods.