Module tk_steroids.settings
Widgets to let the user manage a program's settings.
Classes
class PagedSettingsManager (parent, page_names)
-
Diplay user a settings widget with multiple pages (tabs)
Attributes
tabs
:object
- tk_steroids' Tabs object
Options
parent : object Tkinter parent widget
Expand source code
class PagedSettingsManager(SettingsManager): '''Diplay user a settings widget with multiple pages (tabs) Attributes ---------- tabs : object tk_steroids' Tabs object ''' def __init__(self, parent, page_names): super().__init__(parent) self.tabs = Tabs(self, page_names) self.tabs.grid(sticky='NSWE') self._container = self.tabs.pages[0] @property def active_page(self): '''Determines the active tab page, in which new widgets are placed. Note. Do not confuse with tab selection ''' return self.tabs.buttons[ self.tabs.i_current ].cget('text') @active_page.setter def active_page(self, page_name): page_names = [button.cget('text') for button in self.tabs.buttons] self.cotainer = self.tabs.pages[ page_names.index(page_name) ]
Ancestors
- SettingsManager
- tkinter.Frame
- tkinter.Widget
- tkinter.BaseWidget
- tkinter.Misc
- tkinter.Pack
- tkinter.Place
- tkinter.Grid
Instance variables
prop active_page
-
Determines the active tab page, in which new widgets are placed.
Note. Do not confuse with tab selection
Expand source code
@property def active_page(self): '''Determines the active tab page, in which new widgets are placed. Note. Do not confuse with tab selection ''' return self.tabs.buttons[ self.tabs.i_current ].cget('text')
Inherited members
class SettingsManager (parent)
-
Display user a settings widget
Allows building GUIs, where the user manages grouped setting values that can be controlled by - tickboxes (add_tickboxes) - sliders (add_sliders)
Attributes
elements
:dict
oflists
- The keys are group names and the items are lists that contain TickboxFrame and SliderFrame objects (tk_steroids.elements).
Options
parent : object Tkinter parent widget
Expand source code
class SettingsManager(tk.Frame): '''Display user a settings widget Allows building GUIs, where the user manages grouped setting values that can be controlled by - tickboxes (add_tickboxes) - sliders (add_sliders) Attributes ---------- elements : dict of lists The keys are group names and the items are lists that contain TickboxFrame and SliderFrame objects (tk_steroids.elements). ''' def __init__(self, parent): ''' Options ------- parent : object Tkinter parent widget ''' tk.Frame.__init__(self, parent) self.grid_columnconfigure(0, weight=1) self.elements = {} self._container = self def _add_setting(self, group, element): if group not in self.elements: self.elements[group] = [] self.elements[group].append(element) def add_tickboxes(self, group, options, **kwargs): '''Add tickboxes Options ------- group : string Name of the group **kwargs Keyword arguments to TickboxFrame Returns ------- tickboxes : object ''' tickboxes = TickboxFrame(self._container, options, **kwargs) tickboxes.grid(sticky='NSWE') self._add_setting(group, tickboxes) return tickboxes def add_tickboxes_inspect(self, group, function_or_method, exclude_keywords=[], **kwargs): '''Add tickboxes inspecting the function_or_method. Uses tk_steroids's inspect_booleans to find True/False keyword arguments of the given function or method. Options ------- function_or_method : callable A callable for live inspection exclude_keywords : dict Found settings to exclude **kwargs Keyword arguments to TickboxFrame Returns ------- tickboxes : object The tk_steroids' TickboxFrame object ''' options, defaults = inspect_booleans(function_or_method, exclude_keywords) return self.add_tickboxes(group, options, defaults=defaults, **kwargs) def add_sliders(self, group, options, **kwargs): ''' Add sliders Options ------- group : string Group name options : list Names of the variables that the sliders control **kwargs Keyword arguments to SliderFrame Returns ------- sliders : object The tk_steroids' SliderFrame object ''' sliders = SliderFrame(self._container, options, **kwargs) sliders.grid(sticky='NSWE') self._add_setting(group, sliders) return sliders def add_sliders_inspect(self, group, function_or_method, exclude_keywords=[], **kwargs): '''Add sliders by inspecting the given function_or_method Options ------- group : string Group name function_or_method : callable exclude_keywords : dict **kwargs Keyword arguments to SliderFrame See add_sliders for documentation. ''' options, defaults = inspect_types((int, float), function_or_method, exclude_keywords, exclude_types=bool) return self.add_sliders(group, options, defaults=defaults, **kwargs) def get_current(self): '''Get current settings Returns ------- settings : dict {group: {option: value, ...}} ''' settings = {} for group in self.elements: settings[group] = {} for element in self.elements[group]: settings[group].update(element.states) return settings def set_current(self, settings): '''Set current settings Options ------- settings : dict {group: {option: value, ...}} ''' for group in self.elements: for element in self.elements[group]: element.states = settings[group]
Ancestors
- tkinter.Frame
- tkinter.Widget
- tkinter.BaseWidget
- tkinter.Misc
- tkinter.Pack
- tkinter.Place
- tkinter.Grid
Subclasses
Methods
def add_sliders(self, group, options, **kwargs)
-
Add sliders
Options
group : string Group name options : list Names of the variables that the sliders control **kwargs Keyword arguments to SliderFrame
Returns
sliders
:object
- The tk_steroids' SliderFrame object
def add_sliders_inspect(self, group, function_or_method, exclude_keywords=[], **kwargs)
-
Add sliders by inspecting the given function_or_method
Options
group : string Group name function_or_method : callable exclude_keywords : dict **kwargs Keyword arguments to SliderFrame
See add_sliders for documentation.
def add_tickboxes(self, group, options, **kwargs)
-
Add tickboxes
Options
group : string Name of the group **kwargs Keyword arguments to TickboxFrame
Returns
tickboxes
:object
def add_tickboxes_inspect(self, group, function_or_method, exclude_keywords=[], **kwargs)
-
Add tickboxes inspecting the function_or_method.
Uses tk_steroids's inspect_booleans to find True/False keyword arguments of the given function or method.
Options
function_or_method : callable A callable for live inspection exclude_keywords : dict Found settings to exclude **kwargs Keyword arguments to TickboxFrame
Returns
tickboxes
:object
- The tk_steroids' TickboxFrame object
def get_current(self)
-
Get current settings
Returns
settings
:dict
- {group: {option: value, …}}
def set_current(self, settings)
-
Set current settings
Options
settings : dict {group: {option: value, …}}