Registers a global parameter to be displayed in the control panel. Depending on the required data, possible parameter types include menus, sliders, checkboxes, checkentries, or checkgrids. The current value of the parameter can be retrieved with model.param()
.
Note: model.addBreedParam()
and model.addGoodParam()
alias model.addParameter()
via several undocumented optional parameters. It is recommended to use these two other functions for adding per-breed and per-good parameters, rather than using addParameter()
directly.
Parameters
name — str, required
A slug-type string to be used to refer back to the parameter in other functions.
title — str, required
The title of the parameter, to be displayed in the GUI.
type — str, required
What type of control to display. Possible values are
'menu'
,'check'
,'slider'
,'checkentry'
,'checkgrid'
, or'hidden'
.dflt — str|bool|num|list, required
The default value of the parameter. A menu should have a string here, a check a boolean, a slider a number, a checkentry a bool, int, or string, and a checkgrid a list of strings.
opts — dict|list, optional
Options for the parameter type.
- A slider should have a dict with keys 'low', 'high', and 'step', with numeric values, corresponding to the max and min values and the slider's increment. Alternatively
opts
can take a list of integers for a slider that slides over defined values. - A menu should have key-value pairs corresponding to menu items, with the key the value returned by the parameter, and the value the label displayed in the GUI.
- A checkgrid takes either a list of strings, or a dict with a name-label pair to describe each check. The label can also be entered as a two-item tuple, with the label as the first item and the tooltip text as the second.
- Checks, checkentries, or hidden parameters do not need an
opts
parameter.
Default value: {}
- A slider should have a dict with keys 'low', 'high', and 'step', with numeric values, corresponding to the max and min values and the slider's increment. Alternatively
runtime — bool, optional
Whether the parameter can be changed during the model's runtime. If set to
False
, the parameter will be disabled while the model is running.Default value: True
callback — func, optional
An optional function that will execute when the parameter changes. The function takes three arguments:
model
, the model object;var
, the name of the parameter (the first argument ofmodel.addParameter
); andval
, the new value of the parameter.Default value: None
desc — str, optional
A long description to display as a tooltip. Note that tooltips require PMW when using the Tkinter frontend.
Default value: None
getter — func(name, model), optional
A function to replace the parameter's own getter with open-ended code. The function can return
None
in order to pass to the default getter.Default value: None
setter — func(val, name, model), optional
A function to replace the parameter's own setter with open-ended code. The function can return something besides
None
in order to pass to the default setter.Default value: None
Return Value — Param
The newly created Param
object.