From e5620ec415e677603e0144e367dec938504c4c2d Mon Sep 17 00:00:00 2001 From: emkael Date: Thu, 25 Jul 2019 17:17:03 +0200 Subject: NumericVar without Notify features --- jfr_playoff/gui/frames/__init__.py | 6 +++--- jfr_playoff/gui/variables.py | 15 +++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/jfr_playoff/gui/frames/__init__.py b/jfr_playoff/gui/frames/__init__.py index f996263..3abdff5 100644 --- a/jfr_playoff/gui/frames/__init__.py +++ b/jfr_playoff/gui/frames/__init__.py @@ -7,7 +7,7 @@ import tkinter as tk from tkinter import ttk import tkMessageBox -from ..variables import NotifyStringVar, NotifyIntVar, NotifyNumericVar +from ..variables import NotifyStringVar, NotifyIntVar, NotifyNumericVar, NumericVar def setPanelState(frame, state): for child in frame.winfo_children(): @@ -467,9 +467,9 @@ class NumericSpinbox(tk.Spinbox): self._default = kwargs['from_'] if 'from_' in kwargs else 0 tk.Spinbox.__init__(self, *args, **kwargs) if self._variable is not None: - if not isinstance(self._variable, NotifyNumericVar): + if not isinstance(self._variable, NumericVar): raise AttributeError( - 'NumericSpinbox variable must be NotifyNumericVar') + 'NumericSpinbox variable must be NumericVar') self._variable.trace('w', self._onChange) def _onChange(self, *args): diff --git a/jfr_playoff/gui/variables.py b/jfr_playoff/gui/variables.py index 8927179..e6877f2 100644 --- a/jfr_playoff/gui/variables.py +++ b/jfr_playoff/gui/variables.py @@ -13,15 +13,18 @@ class NotifyVar(tk.Variable): self._root.event_generate('<>', when='tail') self._prevValue = self.get() +class NumericVar(tk.StringVar): + def get(self, default=None): + try: + return int(str(tk.StringVar.get(self)).strip()) + except ValueError: + return default + class NotifyStringVar(NotifyVar, tk.StringVar): pass class NotifyIntVar(NotifyVar, tk.IntVar): pass -class NotifyNumericVar(NotifyStringVar): - def get(self, default=None): - try: - return int(str(NotifyStringVar.get(self)).strip()) - except ValueError: - return default +class NotifyNumericVar(NotifyVar, NumericVar): + pass -- cgit v1.2.3