· 6 years ago · Aug 13, 2019, 05:08 PM
1from tkinter import *
2from tkinter import ttk
3import sqlite3
4
5connect = sqlite3.connect('database.db')
6cursor = connect.cursor()
7
8def db_init():
9 request = """
10 CREATE TABLE IF NOT EXISTS `users` (
11 `id` INTEGER PRIMARY KEY AUTOINCREMENT,
12 `name` VARCHAR(64) NOT NULL,
13 `family` VARCHAR(64) NOT NULL
14 )
15 """
16
17 cursor.execute(request)
18 return cursor
19
20def db_add_record(name, family):
21 request = """
22 INSERT INTO `users`
23 (`name`, `family`)
24 VALUES(?, ?)
25 """
26
27 cursor.executemany(request, [(name, family)])
28 connect.commit()
29
30def button_registry_clicked(name, family):
31 errors = []
32
33 if name == "": errors.append('Поле "имя" пусто.')
34 if family == "": errors.append('Поле "фамилия" пусто.')
35
36 isErrors = False
37
38 for error in errors:
39 print(error)
40 isErrors = True
41
42 if isErrors: return
43
44 print("Вы зарегестрированны!\nВаше имя: {}, а фамилия: {}.".format(name, family))
45
46 db_add_record(name, family)
47
48def window_init_menu(window):
49 menu = Menu(window)
50
51 file = Menu(menu, tearoff=0)
52 file.add_command(label='Сохранить', command=lambda:print('Ух-ты, а это работает)'))
53
54 menu.add_cascade(label='Файл', menu=file)
55
56 window.config(menu=menu)
57
58def window_init(window):
59 window_init_menu(window)
60
61 label_name = ttk.Label(window, text='Введите имя:')
62 label_name.grid(column=0, row=0)
63
64 edit_name = ttk.Entry(window)
65 edit_name.grid(column=1, row=0)
66
67 label_family = ttk.Label(window, text='Введите фамилию:')
68 label_family.grid(column=0, row=1)
69
70 edit_family = ttk.Entry(window)
71 edit_family.grid(column=1, row=1)
72
73 button_registry = ttk.Button(window,
74 text="Зарегестрироваться",
75 command=lambda:button_registry_clicked(edit_name.get(), edit_family.get()))
76 button_registry.grid(column=0, row=2, columnspan=3)
77
78def main():
79 window = Tk()
80 window.title('Окно регистрации')
81 window.geometry('400x250')
82 window_init(window)
83 window.mainloop()
84
85if __name__ == "__main__":
86 db_init()
87 main()