Merge pull request #122 from MikeTheWatchGuy/Dev-latest

NEW form.SaveToDisk and form.LoadFromDisk!
This commit is contained in:
MikeTheWatchGuy 2018-09-04 23:14:08 -04:00 committed by GitHub
commit 607bafca4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 21 deletions

View File

@ -1,24 +1,5 @@
# from tkinter.filedialog import asksaveasfilename, askopenfilename
import pickle
import PySimpleGUI as sg import PySimpleGUI as sg
def save(values):
sfilename = sg.PopupGetFile('Save Settings', save_as=True, no_window=True)
if not sfilename:
return
with open(sfilename, 'wb') as sf:
pickle.dump(values, sf)
def load(form):
dfilename = sg.PopupGetFile('Load Settings', no_window=True)
if not dfilename:
return
with open(dfilename, 'rb') as df:
form.Fill(pickle.load(df))
def Everything(): def Everything():
sg.ChangeLookAndFeel('TanBlue') sg.ChangeLookAndFeel('TanBlue')
@ -62,9 +43,13 @@ def Everything():
button, values = form.Read() button, values = form.Read()
if button is 'SaveSettings': if button is 'SaveSettings':
save(values) filename = sg.PopupGetFile('Save Settings', save_as=True, no_window=True)
form.SaveToDisk(filename)
# save(values)
elif button is 'LoadSettings': elif button is 'LoadSettings':
load(form) filename = sg.PopupGetFile('Load Settings', no_window=True)
form.LoadFromDisk(filename)
# load(form)
elif button in ['Exit', None]: elif button in ['Exit', None]:
break break

View File

@ -7,6 +7,7 @@ import tkinter.font
import datetime import datetime
import sys import sys
import textwrap import textwrap
import pickle
# ----====----====----==== Constants the user CAN safely change ====----====----====----# # ----====----====----==== Constants the user CAN safely change ====----====----====----#
@ -1361,10 +1362,29 @@ class FlexForm:
def Fill(self, values_dict): def Fill(self, values_dict):
FillFormWithValues(self, values_dict) FillFormWithValues(self, values_dict)
def FindElement(self, key): def FindElement(self, key):
return _FindElementFromKeyInSubForm(self, key) return _FindElementFromKeyInSubForm(self, key)
def SaveToDisk(self, filename):
try:
results = BuildResults(self, False, self)
with open(filename, 'wb') as sf:
pickle.dump(results[1], sf)
except:
print('*** Error saving form to disk ***')
def LoadFromDisk(self, filename):
try:
with open(filename, 'rb') as df:
self.Fill(pickle.load(df))
except:
print('*** Error loading form to disk ***')
def GetScreenDimensions(self): def GetScreenDimensions(self):
if self.TKrootDestroyed: if self.TKrootDestroyed:
return None, None return None, None