From 3e43bafa407d1bda4e5e8f0adb24ec6a8a4d196b Mon Sep 17 00:00:00 2001 From: emkael Date: Sun, 2 Jun 2019 21:02:56 +0200 Subject: Remote configs configuration frame --- jfr_playoff/gui/frames/__init__.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'jfr_playoff/gui/frames/__init__.py') diff --git a/jfr_playoff/gui/frames/__init__.py b/jfr_playoff/gui/frames/__init__.py index bc6bdb9..7c4907f 100644 --- a/jfr_playoff/gui/frames/__init__.py +++ b/jfr_playoff/gui/frames/__init__.py @@ -10,12 +10,14 @@ def getIntVal(widget, default=0): return default class WidgetRepeater(tk.Frame): - def __init__(self, master, widgetClass, headers=None, *args, **kwargs): + def __init__(self, master, widgetClass, headers=None, classParams=None, + *args, **kwargs): if not issubclass(widgetClass, RepeatableFrame): raise AttributeError( 'WidgetRepeater widget must be a RepeatableFrame') tk.Frame.__init__(self, master, **kwargs) self.widgetClass = widgetClass + self.widgetClassParams = classParams self.widgets = [] self.headers = headers self.addButton = ttk.Button( @@ -35,6 +37,8 @@ class WidgetRepeater(tk.Frame): command=lambda i=len(self.widgets): self._removeWidget(i)) removeButton.grid(row=len(self.widgets), column=0, sticky=tk.N) widget = self.widgetClass(self) + if self.widgetClassParams is not None: + widget.configureContent(**self.widgetClassParams) self.widgets.append(widget) self._updateGrid() @@ -77,6 +81,9 @@ class RepeatableFrame(tk.Frame): def renderContent(self): pass + def configureContent(self, **kwargs): + pass + def getValue(self): pass @@ -89,6 +96,10 @@ class RepeatableEntry(RepeatableFrame): self.field = ttk.Entry(self, textvariable=self.value) self.field.pack(expand=True, fill=tk.BOTH) + def configureContent(self, **kwargs): + for param, value in kwargs.iteritems(): + self.field[param] = value + def getValue(self): return self.value.get() -- cgit v1.2.3