6.3.3. Managers¶
API of the various managers, special classes to deals with QAction, Paramaters, ControlModules…
|
Create a new action and add it eventually to a toolbar and a menu |
|
QAction subclass to mimic signals as pushbuttons. |
|
MixIn Class to be used by all UserInterface to manage their QActions and the action they are connected to |
|
Class dealing with Parameter and ParameterTree |
|
Class to manage DAQ_Viewers and DAQ_Moves with UI to select some |
- class pymodaq.utils.managers.action_manager.QAction(*args, **kwargs)[source]¶
QAction subclass to mimic signals as pushbuttons. Done to be sure of backcompatibility when I moved from pushbuttons to QAction
- Attributes
- clicked
Methods
click
connect_to
- pymodaq.utils.managers.action_manager.addaction(name='', icon_name='', tip='', checkable=False, slot: Optional[Callable] = None, toolbar: Optional[QToolBar] = None, menu: Optional[QMenu] = None, visible=True, shortcut=None)[source]¶
Create a new action and add it eventually to a toolbar and a menu
- Parameters
name (str) – Displayed name if should be displayed (for instance in menus)
icon_name (str) – png file name to produce the icon
tip (str) – a tooltip to be displayed when hovering above the action
checkable (bool) – set the checkable state of the action
slot (callable) – Method or function that will be called when the action is triggered
toolbar (QToolBar) – a toolbar where action should be added.
menu (QMenu) – a menu where action should be added.
visible (bool) – display or not the action in the toolbar/menu
- class pymodaq.utils.managers.action_manager.ActionManager(toolbar=None, menu=None)[source]¶
MixIn Class to be used by all UserInterface to manage their QActions and the action they are connected to
- Parameters
toolbar (QToolbar, optional) – The toolbar to use as default
menu (QMenu, option) – The menu to use as default
- Attributes
Methods
add_action
([short_name, name, icon_name, ...])Create a new action and add it to toolbar and menu
add_widget
(short_name, klass, *args[, tip, ...])Create and add a widget to a toolbar
affect_to
(action_name, obj)Affect action to an object either a toolbar or a menu
connect_action
(name, slot[, connect, ...])Connect (or disconnect) the action referenced by name to the given slot
get_action
(name)Getter of a given action
has_action
(action_name)Check if an action has been defined :param action_name: The action name as defined in setup_actions :type action_name: str
is_action_checked
Dispatch methods based on type signature
is_action_enabled
Dispatch methods based on type signature
is_action_visible
Dispatch methods based on type signature
set_action_checked
Dispatch methods based on type signature
set_action_enabled
Dispatch methods based on type signature
set_action_text
(action_name, text)Convenience method to set the displayed text on an action
set_action_visible
Dispatch methods based on type signature
set_menu
(menu)affect a menu to self
set_toolbar
(toolbar)affect a toolbar to self
Method where to create actions to be subclassed.
- add_action(short_name='', name='', icon_name='', tip='', checkable=False, toolbar=None, menu=None, visible=True, shortcut=None, auto_toolbar=True, auto_menu=True)[source]¶
Create a new action and add it to toolbar and menu
- Parameters
short_name (str) – the name as referenced in the dict self.actions
name (str) – Displayed name if should be displayed in
icon_name (str) – png file name to produce the icon
tip (str) – a tooltip to be displayed when hovering above the action
checkable (bool) – set the checkable state of the action
toolbar (QToolBar) – a toolbar where action should be added. Actions can also be added later see affect_to
menu (QMenu) – a menu where action should be added. Actions can also be added later see affect_to
visible (bool) – display or not the action in the toolbar/menu
See also
affect_to
,pymodaq.resources.QtDesigner_Ressources.Icon_Library
,pymodaq.utils.managers.action_manager.add_action
- add_widget(short_name, klass: Union[str, QWidget], *args, tip='', toolbar: Optional[QToolBar] = None, visible=True, signal_str=None, slot: Optional[Callable] = None, **kwargs)[source]¶
Create and add a widget to a toolbar
- Parameters
short_name (str) – the name as referenced in the dict self.actions
klass (str or QWidget) – should be a custom widget class or the name of a standard widget of QWidgets
args (list) – variable arguments passed as is to the widget constructor
tip (str) – a tooltip to be displayed when hovering above the widget
toolbar (QToolBar) – a toolbar where the widget should be added.
visible (bool) – display or not the action in the toolbar/menu
signal_str (str) – an attribute of type Signal of the widget
slot (Callable) – a callable connected to the signal
kwargs (dict) – variable named arguments passed as is to the widget constructor
- Return type
QtWidgets.QWidget
- affect_to(action_name, obj: Union[QToolBar, QMenu])[source]¶
Affect action to an object either a toolbar or a menu
- Parameters
action_name (str) – The action name as defined in setup_actions
obj (QToolbar or QMenu) – The object where to add the action
- connect_action(name, slot, connect=True, signal_name='')[source]¶
Connect (or disconnect) the action referenced by name to the given slot
- Parameters
name (str) – key of the action as referenced in the self._actions dict
slot (method) – a method/function
connect (bool) – if True connect the trigger signal of the action to the defined slot else disconnect it
signal_name (str) – try to use it as a signal (for widgets added…) otherwise use the triggered signal
- has_action(action_name) bool [source]¶
Check if an action has been defined :param action_name: The action name as defined in setup_actions :type action_name: str
- Returns
bool
- Return type
True if the action exists, False otherwise
- set_action_text(action_name: str, text: str)[source]¶
Convenience method to set the displayed text on an action
affect a menu to self
- Parameters
menu – QtWidgets.QMenu
- setup_actions()[source]¶
Method where to create actions to be subclassed. Mandatory
Examples
>>> self.add_action('Quit', 'close2', "Quit program") >>> self.add_action('Grab', 'camera', "Grab from camera", checkable=True) >>> self.add_action('Load', 'Open', "Load target file (.h5, .png, .jpg) or data from camera", checkable=False) >>> self.add_action('Save', 'SaveAs', "Save current data", checkable=False)
See also
Get the default menu
- property toolbar¶
Get the default toolbar
- class pymodaq.utils.managers.parameter_manager.ParameterManager(settings_name: Optional[str] = None)[source]¶
Class dealing with Parameter and ParameterTree
- settings¶
The higher level (parent) Parameter
- Type
Parameter
- settings_tree¶
- Type
ParameterTree
- Attributes
- settings
Methods
child_added
(param, data)Non-mandatory method to be subclassed for actions to perform when a param has been added in self.settings
param_deleted
(param)Non-mandatory method to be subclassed for actions to perform when one of the param in self.settings has been deleted
value_changed
(param)Non-mandatory method to be subclassed for actions to perform (methods to call) when one of the param's value in self._settings is changed
create_parameter
parameter_tree_changed
- child_added(param, data)[source]¶
Non-mandatory method to be subclassed for actions to perform when a param has been added in self.settings
- Parameters
param (Parameter) – the parameter where child will be added
data (Parameter) – the child parameter
- param_deleted(param)[source]¶
Non-mandatory method to be subclassed for actions to perform when one of the param in self.settings has been deleted
- Parameters
param (Parameter) – the parameter that has been deleted
- value_changed(param)[source]¶
Non-mandatory method to be subclassed for actions to perform (methods to call) when one of the param’s value in self._settings is changed
- Parameters
param (Parameter) – the parameter whose value just changed
Examples
>>> if param.name() == 'do_something': >>> if param.value(): >>> print('Do something') >>> self.settings.child('main_settings', 'something_done').setValue(False)
- class pymodaq.utils.managers.modules_manager.ModulesManager(detectors=[], actuators=[], selected_detectors=[], selected_actuators=[], **kwargs)[source]¶
Class to manage DAQ_Viewers and DAQ_Moves with UI to select some
Easier to connect control modules signals to slots, test, …
- Parameters
detectors (list of DAQ_Viewer) –
selected_detectors (list of DAQ_Viewer) – sublist of detectors
selected_actuators (list of DAQ_Move) – sublist of actuators
- Attributes
Nactuators
Get the number of selected actuators
Ndetectors
Get the number of selected detectors
actuators
Get the list of selected actuators
actuators_all
Get the list of all actuators
actuators_name
Get all the names of the actuators
detectors
Get the list of selected detectors
detectors_all
Get the list of all detectors
detectors_name
Get all the names of the detectors
modules
Get the list of all detectors and actuators
modules_all
Get the list of all detectors and actuators
selected_actuators_name
Get/Set the names of the selected actuators
selected_detectors_name
Get/Set the names of the selected detectors
Methods
connect_actuators
([connect, slot, signal])Connect the selected actuators signal to a given or default slot
connect_detectors
([connect, slot])Connect selected DAQ_Viewers's grab_done_signal to the given slot
Do a snap of selected detectors, to get the list of all the data and processed data
get_mod_from_name
(name[, mod])Getter of a given module from its name (title)
get_mods_from_names
(names[, mod])Getter of a list of given modules from their name (title)
get_names
(modules)Get the titles of a list of Control Modules
get_selected_probed_data
([dim])Get the name of selected data names of a given dimensionality
grab_datas
(**kwargs)Do a single grab of connected and selected detectors
move_actuators
(positions[, mode, polling])will apply positions to each currently selected actuators.
set_actuators
(actuators, selected_actuators)Populates actuators and the subset to be selected in the UI
set_detectors
(detectors, selected_detectors)Populates detectors and the subset to be selected in the UI
Do a move of selected actuator
value_changed
(param)Non-mandatory method to be subclassed for actions to perform (methods to call) when one of the param's value in self._settings is changed
actuators_changed
det_done
det_done_signal
detectors_changed
move_done
move_done_signal
order_positions
reset_signals
show_only_control_modules
timeout_signal
- connect_actuators(connect=True, slot=None, signal='move_done')[source]¶
Connect the selected actuators signal to a given or default slot
- Parameters
connect (bool) –
slot (builtin_function_or_method) – method or function the chosen signal will be connected to if None, then the default move_done slot is used
signal (str) –
What kind of signal is to be used:
’move_done’ will connect the move_done_signal to the slot
’current_value’ will connect the ‘current_value_signal’ to the slot
See also
move_done()
- connect_detectors(connect=True, slot=None)[source]¶
Connect selected DAQ_Viewers’s grab_done_signal to the given slot
- Parameters
connect (bool) – if True, connect to the given slot (or default slot) if False, disconnect all detectors (not only the currently selected ones. This is made because when selected detectors changed if you only disconnect those one, the previously connected ones will stay connected)
slot (method) – A method that should be connected, if None self.det_done is connected by default
- get_det_data_list()[source]¶
Do a snap of selected detectors, to get the list of all the data and processed data
- get_mod_from_name(name, mod='det') Union[DAQ_Move, DAQ_Viewer] [source]¶
Getter of a given module from its name (title)
- get_mods_from_names(names, mod='det')[source]¶
Getter of a list of given modules from their name (title)
- classmethod get_names(modules)[source]¶
Get the titles of a list of Control Modules
- Parameters
modules (list of DAQ_Move and/or DAQ_Viewer) –
- get_selected_probed_data(dim='0D')[source]¶
Get the name of selected data names of a given dimensionality
- Parameters
dim (str) – either ‘0D’, ‘1D’, ‘2D’ or ‘ND’
- move_actuators(positions, mode='abs', polling=True)[source]¶
will apply positions to each currently selected actuators. By Default the mode is absolute but can be
- Parameters
positions (list) – the list of position to apply. Its length must be equal to the number of selected actutors
mode (str) – either ‘abs’ for absolute positionning or ‘rel’ for relative
polling (bool) – if True will wait for the selected actuators to reach their target positions (they have to be connected to a method checking for the position and letting the programm know the move is done (default connection is this object move_done method)
- Return type
(OrderedDict) with the selected actuators’s name as key and current actuators’s value as value
- set_actuators(actuators, selected_actuators)[source]¶
Populates actuators and the subset to be selected in the UI
- set_detectors(detectors, selected_detectors)[source]¶
Populates detectors and the subset to be selected in the UI
- value_changed(param)[source]¶
Non-mandatory method to be subclassed for actions to perform (methods to call) when one of the param’s value in self._settings is changed
- Parameters
param (Parameter) – the parameter whose value just changed
Examples
>>> if param.name() == 'do_something': >>> if param.value(): >>> print('Do something') >>> self.settings.child('main_settings', 'something_done').setValue(False)
- property Nactuators¶
Get the number of selected actuators
- property Ndetectors¶
Get the number of selected detectors
- property actuators_all¶
Get the list of all actuators
- property actuators_name¶
Get all the names of the actuators
- property detectors: List[DAQ_Viewer]¶
Get the list of selected detectors
- property detectors_all¶
Get the list of all detectors
- property detectors_name¶
Get all the names of the detectors
- property modules¶
Get the list of all detectors and actuators
- property modules_all¶
Get the list of all detectors and actuators
- property selected_detectors_name¶
Get/Set the names of the selected detectors