Skip to content

ShuttersWidget

ShuttersWidget widget

This image generated from example code below.

ShuttersWidget #

Bases: QWidget

A Widget to control shutters and Micro-Manager autoshutter.

Parameters:

Name Type Description Default
shutter_device str

The shutter device Label.

required
autoshutter bool

If True, a checkbox controlling the Micro-Manager autoshutter is added to the layout.

True
parent QWidget | None

Optional parent widget. By default, None.

None
mmcore CMMCorePlus | None

Optional pymmcore_plus.CMMCorePlus micromanager core. By default, None. If not specified, the widget will use the active (or create a new) CMMCorePlus.instance.

None

button_text_closed: str property writable #

Set the button text for when the shutter is closed.

Default = ''

button_text_open: str property writable #

Set the button text for when the shutter is open.

Default = ''

icon_closed: str property writable #

Set the icon of the QPushButton when the shutter is closed.

The icon_closed.setter icon string should be any key recognizable as a superqt fonticon (e.g. mdi6.abacus). Default = MDI6.hexagon_slice_6 (https://github.com/templarian/MaterialDesign). Note that MDI6 is installed by default, you must install other fonts if you want to use them.

icon_color_closed: COLOR_TYPE property writable #

Set the button icon color for when the shutter is closed.

Default = 'magenta'

COLOR_TYPE = Union[QColor, int, str, Qt.GlobalColor, tuple[int, int, int, int], tuple[int, int, int]]

icon_color_open: COLOR_TYPE property writable #

Set the button icon color for when the shutter is open.

Default = (0, 255, 0)

COLOR_TYPE = Union[QColor, int, str, Qt.GlobalColor, tuple[int, int, int, int], tuple[int, int, int]]

icon_open: str property writable #

Set the icon of the QPushButton when the shutter is open.

The icon_open.setter icon string should be any key recognizable as a superqt fonticon (e.g. mdi6.abacus). Default = MDI6.hexagon_outline (https://github.com/templarian/MaterialDesign). Note that MDI6 is installed by default, you must install other fonts if you want to use them.

icon_size: int property writable #

Set the button icon size.

Default = 25

Example#

shutters_widget.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""Example usage of the ShuttersWidget class.

In this example all the devices of type 'Shutter' that are loaded
in micromanager are displayed with a 'ShuttersWidget'.

The autoshutter checkbox is displayed only with the last shutter device.
"""

from pymmcore_plus import CMMCorePlus, DeviceType
from qtpy.QtWidgets import QApplication, QHBoxLayout, QWidget

from pymmcore_widgets import ShuttersWidget

app = QApplication([])

mmc = CMMCorePlus().instance()
mmc.loadSystemConfiguration()

wdg = QWidget()
wdg.setLayout(QHBoxLayout())

shutter_dev_list = list(mmc.getLoadedDevicesOfType(DeviceType.Shutter))

for idx, shutter_dev in enumerate(shutter_dev_list):
    # bool to display the autoshutter checkbox only with the last shutter
    autoshutter = bool(idx >= len(shutter_dev_list) - 1)
    shutter = ShuttersWidget(shutter_dev, autoshutter=autoshutter)
    shutter.button_text_open = shutter_dev
    shutter.button_text_closed = shutter_dev
    wdg.layout().addWidget(shutter)

wdg.show()

app.exec_()