Adds a parameter to the control panel that takes a separate value for each registered good. The current value of the parameter for any or all goods can be retrieved by passing an appropriate parameter identification tuple to model.param()
.
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', or 'hidden'.
dflt — str|bool|num|dict, required
The default value of the parameter. A menu should have a string here, a check a boolean, a slider a number, and a checkentry a bool, int, or string Can also take a dict, with keys corresponding to the different goods, in order to set a different default value for each good.
opts — dict, 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.
- 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 four arguments:
model
, the model object;var
, the name of the parameter (the first argument ofmodel.addGoodParam
);good
, the name of the good whose parameter was changed; 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, good), 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, good), 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.
Notes and Examples