Skip to content

Commit c60236a

Browse files
feat Python Tkinter All List III Save and Open ToDo Lists complete
Python Tkinter All List III Save and Open ToDo Lists complete resolves: see also:
1 parent ae9c21b commit c60236a

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

Python Tkinter All List III Save and Open ToDo Lists/SaveandOpe ToD Lists.py

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
from tkinter import *
77
from tkinter.font import Font
8+
from tkinter import filedialog
9+
import pickle
810

911
root = Tk()
1012
root.title("Python Tkinter All List III Save and Open ToDo Lists")
@@ -94,13 +96,59 @@ def delete_crossed():
9496
count += 1
9597

9698
def save_list():
97-
pass
99+
file_name = filedialog.asksaveasfilename(
100+
initialdir="Python Tkinter All List III Save and Open ToDo Lists/data",
101+
title="Save File",
102+
filetypes=(
103+
("Dat Files", "*.dat"),
104+
("All Files", "*.*"))
105+
)
106+
if file_name:
107+
if file_name.endswith(".dat"):
108+
pass
109+
else:
110+
file_name = f'{file_name}.dat'
111+
112+
# Delete crossed off items before save
113+
count = 0
114+
while count < my_list.size():
115+
if my_list.itemcget(count, "fg") == "#dedede":
116+
my_list.delete(my_list.index(count))
117+
else:
118+
count += 1
119+
# Grab all the stuff from the list
120+
stuff = my_list.get(0, END)
121+
122+
# Open the File
123+
output_file = open(file_name, 'wb')
124+
125+
# Actually add the stuff to the fil
126+
pickle.dump(stuff, output_file)
98127

99128
def open_list():
100-
pass
129+
file_name = filedialog.asksaveasfilename(
130+
initialdir="Python Tkinter All List III Save and Open ToDo Lists/data",
131+
title="open File",
132+
filetypes=(
133+
("Dat Files", "*.dat"),
134+
("All Files", "*.*"))
135+
)
136+
if file_name:
137+
# Delete currently open list
138+
my_list.delete(0, END)
139+
140+
# Open the File
141+
input_file = open(file_name, 'rb')
142+
143+
# load thwe data
144+
stuff = pickle.load(input_file)
145+
146+
#out stuff rto the screen
147+
for item in stuff:
148+
my_list.insert(END, item)
101149

102150
def clear_list():
103-
pass
151+
my_list.delete(0, END)
104152

105153
# Create Menu
106154
my_menu = Menu(root)
Binary file not shown.

0 commit comments

Comments
 (0)