|
5 | 5 |
|
6 | 6 | from tkinter import *
|
7 | 7 | from tkinter.font import Font
|
| 8 | +from tkinter import filedialog |
| 9 | +import pickle |
8 | 10 |
|
9 | 11 | root = Tk()
|
10 | 12 | root.title("Python Tkinter All List III Save and Open ToDo Lists")
|
@@ -94,13 +96,59 @@ def delete_crossed():
|
94 | 96 | count += 1
|
95 | 97 |
|
96 | 98 | 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) |
98 | 127 |
|
99 | 128 | 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) |
101 | 149 |
|
102 | 150 | def clear_list():
|
103 |
| - pass |
| 151 | + my_list.delete(0, END) |
104 | 152 |
|
105 | 153 | # Create Menu
|
106 | 154 | my_menu = Menu(root)
|
|
0 commit comments