Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. from tkinter import *
  2. from tkinter import ttk
  3.  
  4. import json
  5.  
  6.  
  7. def save(*args):
  8.     if pupil.get() == '':
  9.         return pupil_entry.focus()
  10.     if labs.get() == '':
  11.         return labs_entry.focus()
  12.  
  13.     data = read_json()
  14.     data[pupil.get()] = labs.get().split()
  15.  
  16.     write_json(data)
  17.  
  18.     pupil.set('')
  19.     labs.set('')
  20.  
  21.  
  22. def clear_data():
  23.     with open(FILENAME, 'w') as f:
  24.         f.write('')
  25.  
  26.  
  27. def write_json(data):
  28.     with open(FILENAME, 'w') as f:
  29.         json.dump(data, f, indent=2, ensure_ascii=False)
  30.  
  31.  
  32. def read_json():
  33.     with open(FILENAME) as f:
  34.         if f.readline() == '':
  35.             return {}
  36.         return json.load(f)
  37.  
  38.  
  39. FILENAME = 'data.json'
  40.  
  41.  
  42. root = Tk()
  43.  
  44. mainframe = ttk.Frame(root, padding='10')
  45. mainframe.grid(row=0, column=0)
  46.  
  47. pupil = StringVar()
  48. labs = StringVar()
  49.  
  50. pupil_entry = ttk.Entry(mainframe, textvariable=pupil)
  51. pupil_entry.grid(row=0, column=1)
  52. pupil_entry.focus()
  53. labs_entry = ttk.Entry(mainframe, textvariable=labs)
  54. labs_entry.grid(row=1, column=1)
  55.  
  56. ttk.Label(mainframe, text='Ученик: ').grid(row=0, column=0)
  57. ttk.Label(mainframe, text='Выполненные работы: ').grid(row=1, column=0)
  58.  
  59. ttk.Button(mainframe, text='Очистить', command=clear_data).grid(row=2, column=0)
  60. ttk.Button(mainframe, text='Сохранить', command=save).grid(row=2, column=1)
  61.  
  62. for child in mainframe.winfo_children():
  63.     root.bind('<Return>', save)
  64.  
  65.  
  66. if __name__ == '__main__':
  67.     root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement