From 1f95394a9d444ecf6d539cb978053fca038327a5 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 16 Jun 2020 13:19:09 -0400 Subject: [PATCH 1/2] Added Radio.reset_group --- PySimpleGUIQt/PySimpleGUIQt.py | 12 +++++++++--- PySimpleGUIWx/PySimpleGUIWx.py | 7 +++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/PySimpleGUIQt/PySimpleGUIQt.py b/PySimpleGUIQt/PySimpleGUIQt.py index 2a01c778..68ac7991 100644 --- a/PySimpleGUIQt/PySimpleGUIQt.py +++ b/PySimpleGUIQt/PySimpleGUIQt.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -version = __version__ = "0.35.0.3 Unreleased\nMassive update of docstrings (thanks nngogol), default for slider tick interval set automatically now, margins added to Window but not yet hooked up, VSeparator added (spelling error)" +version = __version__ = "0.35.0.4 Unreleased\nMassive update of docstrings (thanks nngogol), default for slider tick interval set automatically now, margins added to Window but not yet hooked up, VSeparator added (spelling error), added Radio.reset_group and removed clearing all when one of them is cleared (recent change)" port = 'PySimpleGUIQt' @@ -933,14 +933,20 @@ class Radio(Element): self.QT_Radio_Button.setDisabled(False) if value is True: self.QT_Radio_Button.setChecked(True) - if value is False: # If setting this button to false, then set them ALL to false too - self.QT_Radio_Button.setChecked(True) + if value is False: self.QT_RadioButtonGroup.setExclusive(False) self.QT_Radio_Button.setChecked(False) self.QT_RadioButtonGroup.setExclusive(True) super().Update(self.QT_Radio_Button, background_color=background_color, text_color=text_color, font=font, visible=visible) + def reset_group(self): + self.QT_Radio_Button.setChecked(True) + self.QT_RadioButtonGroup.setExclusive(False) + self.QT_Radio_Button.setChecked(False) + self.QT_RadioButtonGroup.setExclusive(True) + + def _QtCallbackValueChanged(self, value): if not self.ChangeSubmits: return diff --git a/PySimpleGUIWx/PySimpleGUIWx.py b/PySimpleGUIWx/PySimpleGUIWx.py index d6586322..cd20d5c1 100644 --- a/PySimpleGUIWx/PySimpleGUIWx.py +++ b/PySimpleGUIWx/PySimpleGUIWx.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -version = __version__ = "0.17.1.1 Unreleased\n VSeparator added (spelling error)" +version = __version__ = "0.17.1.2 Unreleased\n VSeparator added (spelling error), Radio.reset_group added and removed the clearing all when one cleared" port = 'PySimpleGUIWx' @@ -806,11 +806,14 @@ class Radio(Element): if value is True: self.WxRadioButton.SetValue(True) elif value is False: - self.WxRadioButton.SetValue(True) self.WxRadioButton.SetValue(False) super().Update(self.WxRadioButton, background_color=background_color, text_color=text_color, font=font, visible=visible) + def reset_group(self): + self.WxRadioButton.SetValue(True) + self.WxRadioButton.SetValue(False) + update = Update # ---------------------------------------------------------------------- # From fbf1a627fa015b07a0a7d3e630835f7e9f551d99 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 16 Jun 2020 13:19:53 -0400 Subject: [PATCH 2/2] Changed Radio.update (again) so that clearing only clears the individual radio button. (Forgot about reset_group) --- PySimpleGUI.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/PySimpleGUI.py b/PySimpleGUI.py index a2714f49..8a1d5b35 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -version = __version__ = "4.20.0.3 Unreleased\n Ability to add your own theme easier using theme_add_new, VSeparator added (spelling error)" +version = __version__ = "4.20.0.4 Unreleased\n Ability to add your own theme easier using theme_add_new, VSeparator added (spelling error), removed Radio update clearing all if one is cleared (forgot about reset_group)" port = 'PySimpleGUI' @@ -214,6 +214,10 @@ def _timeit_summary(func): return wrapper +# Handy python statements to increment and decrement with wrapping that I don't want to forget +# count = (count + (MAX - 1)) % MAX # Decrement - roll over to MAX from 0 +# count = (count + 1) % MAX # Increment to MAX then roll over to 0 + """ Welcome to the "core" PySimpleGUI code.... @@ -1723,7 +1727,8 @@ class Radio(Element): if value is True: self.TKIntVar.set(self.EncodedRadioValue) elif value is False: - self.TKIntVar.set(0) + if self.TKIntVar.get() == self.EncodedRadioValue: + self.TKIntVar.set(0) except: print('Error updating Radio') self.InitialState = value @@ -4183,8 +4188,7 @@ class Graph(Element): shift_converted = self._convert_xy_to_canvas_xy(x_direction, y_direction) shift_amount = (shift_converted[0] - zero_converted[0], shift_converted[1] - zero_converted[1]) if figure is None: - print('*** WARNING - Your figure is None. It most likely means your did not Finalize your Window ***') - print('Call Window.Finalize() prior to all graph operations') + print('* move_figure warning - your figure is None *') return None self._TKCanvas2.move(figure, shift_amount[0], shift_amount[1])