-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
120 lines (100 loc) · 4.3 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import sys
from Database import Database
from Camera import Camera
from PySide6.QtWidgets import QApplication, QLabel, QMessageBox, QPushButton, QWidget
from PySide6.QtUiTools import QUiLoader
from PySide6.QtCore import Qt, QSize
from PySide6 import QtGui
from functools import partial
class Main(QWidget):
def __init__(self):
super(Main, self).__init__()
loader = QUiLoader()
self.ui = loader.load('main.ui')
self.ui.show()
self.ui.btn_add.clicked.connect(self.addNewUser)
self.users = self.readMessages()
self.length = len(self.users)
def readMessages(self):
users = Database.select()
print(users)
for i, user in enumerate(users):
label = QLabel()
label.setText(user[1])
btn = QPushButton()
btn.setText('×')
btn.setStyleSheet('max-width: 18px; min-height: 18px; background-color: #F05454;'
' color: white; border: 0px; border-radius: 9px;')
avatar = QPushButton()
avatar.setStyleSheet('max-width: 70px; min-height: 70px; border: 0px; border-radius: 35px;')
avatar.setIcon(QtGui.QIcon(f"assets/img/users/{user[4]}"))
avatar.setIconSize(QSize(70, 70))
self.ui.gl_users.addWidget(avatar, i, 0, alignment=Qt.Alignment())
self.ui.gl_users.addWidget(label, i, 1, alignment=Qt.Alignment())
self.ui.gl_users.addWidget(btn, i, 2, alignment=Qt.Alignment())
btn.clicked.connect(partial(self.deleteUser, user[0], btn, label, avatar))
return users
def addNewUser(self):
self.add_new_user = AddUser(self.length)
def deleteUser(self, id, btn, label, avatar):
response = Database.delete(id)
if response:
btn.hide()
label.hide()
avatar.hide()
self.msgBox("Your message deleted!")
else:
self.msgBox("Database error!")
def msgBox(self, msg):
msg_box = QMessageBox()
msg_box.setText(msg)
msg_box.exec_()
class AddUser(QWidget):
def __init__(self, len):
super(AddUser, self).__init__()
loader = QUiLoader()
self.ui = loader.load('add-User.ui')
self.ui.show()
self.ui.btn_choose.setIcon(QtGui.QIcon('assets/img/camera2.png'))
self.ui.btn_submit.clicked.connect(self.submit)
self.ui.btn_choose.clicked.connect(self.takePhoto)
self.length = len
print('self.length: ',self.length)
def submit(self):
name = self.ui.txt_name.text()
nationalcode = self.ui.txt_code.text()
birthday = self.ui.txt_birthday.text()
if name != "" and nationalcode != "":
response = Database.insert(name, nationalcode, birthday, self.length+1)
if response:
self.length += 1
label = QLabel()
label.setText(name)
btn = QPushButton()
btn.setText('×')
btn.setStyleSheet('max-width: 18px; min-height: 18px; background-color: #F05454;'
' color: white; border: 0px; border-radius: 9px;')
avatar = QPushButton()
avatar.setStyleSheet('max-width: 70px; min-height: 70px; border: 0px; border-radius: 35px;')
avatar.setIcon(QtGui.QIcon(f"assets/img/users/{self.length-1}.jpg"))
avatar.setIconSize(QSize(70, 70))
widget.ui.gl_users.addWidget(avatar, self.length, 0, alignment=Qt.Alignment())
widget.ui.gl_users.addWidget(label, self.length, 1, alignment=Qt.Alignment())
widget.ui.gl_users.addWidget(btn, self.length, 2, alignment=Qt.Alignment())
btn.clicked.connect(partial(widget.deleteUser, self.length, btn, label, avatar))
self.ui.close()
self.msgBox("User added successfully!")
else:
self.msgBox("Database error!")
else:
self.msgBox("Error: feilds are empty!")
def takePhoto(self):
camera = Camera(self.length, self.ui.lbl_photo)
def msgBox(self, msg):
msg_box = QMessageBox()
msg_box.setText(msg)
msg_box.exec_()
if __name__ == "__main__":
app = QApplication([])
widget = Main()
sys.exit(app.exec())