Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.73 KB | None | 0 0
  1. import sys
  2. import json
  3. from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel
  4. from PyQt5.QtWidgets import QLineEdit
  5.  
  6. class User():
  7.     def __init__(self):
  8.         self.email = ''
  9.         self.barcode = ''
  10.         self.groups = []
  11.  
  12.  
  13. class NewUser(QWidget):
  14.     def __init__(self):
  15.         super().__init__()
  16.         self.initUI()
  17.  
  18.  
  19.     def initUI(self):
  20.         self.setGeometry(100, 100, 450, 500)
  21.         self.setWindowTitle('Новый пользователь')
  22.  
  23.         self.user = User()
  24.  
  25.         self.email_label = QLabel(self)
  26.         self.email_label.setText('Email:')
  27.         self.email_label.move(80, 30)
  28.  
  29.         self.email_gap = QLineEdit(self)
  30.         self.email_gap.move(80, 70)
  31.  
  32.         self.barcode_label = QLabel(self)
  33.         self.barcode_label.setText('Штих-код:')
  34.         self.barcode_label.move(80, 130)
  35.  
  36.         self.barcode_gap = QLineEdit(self)
  37.         self.barcode_gap.move(80, 170)
  38.  
  39.         self.group_label = QLabel(self)
  40.         self.group_label.setText('По одной введите группы пользователя:')
  41.         self.group_label.move(80, 230)
  42.  
  43.         self.group_gap = QLineEdit(self)
  44.         self.group_gap.move(80, 270)
  45.  
  46.         self.add_group_btn = QPushButton('Добавить группу в список групп', self)
  47.         self.add_group_btn.resize(self.add_group_btn.sizeHint())
  48.         self.add_group_btn.move(75, 310)
  49.         self.add_group_btn.clicked.connect(self.add_group)
  50.  
  51.         self.btn = QPushButton('Добавить в базу', self)
  52.         self.btn.resize(self.btn.sizeHint())
  53.         self.btn.move(40, 380)
  54.         self.btn.clicked.connect(self.user_init)
  55.  
  56.         self.btn = QPushButton('Завершить', self)
  57.         self.btn.resize(self.btn.sizeHint())
  58.         self.btn.move(275, 380)
  59.         self.btn.clicked.connect(self.close_all)
  60.  
  61.     def add_group(self):
  62.         if self.group_gap.text() == '':
  63.             return
  64.         self.user.groups.append(self.group_gap.text())
  65.         self.group_gap.setText('')
  66.  
  67.     def user_init(self):
  68.         self.user.email = self.email_gap.text()
  69.         self.user.email.join(list(filter(lambda x: x.isalpha(), self.user.email)))
  70.         if self.user.email == '':
  71.             return
  72.         self.email_gap.setText('')
  73.         self.user.barcode = self.barcode_gap.text()
  74.         if self.user.barcode == '':
  75.             return
  76.         self.user.barcode = int(self.user.barcode)
  77.         self.barcode_gap.setText('')
  78.         self.user.groups = list(set(self.user.groups))
  79.         self.send(self.convert_to_json())
  80.  
  81.     def convert_to_json(self):
  82.         user_dict = {}
  83.         user_dict['email'] = self.user.email
  84.         user_dict['barcode'] = self.user.barcode
  85.         user_dict['groups'] = self.user.groups
  86.         return json.dumps(user_dict)
  87.  
  88.     def send(self, json_file):
  89.         #отправить json_file нового пользователя на сервер
  90.         pass
  91.  
  92.     def close_all(self):
  93.         sys.exit(app.exec_())
  94.  
  95.  
  96. class Group():
  97.     def __init__(self):
  98.         self.name = ''
  99.         self.members = []
  100.  
  101.  
  102. class NewGroup(QWidget):
  103.     def __init__(self):
  104.         super().__init__()
  105.         self.initUI()
  106.  
  107.  
  108.     def initUI(self):
  109.         self.setGeometry(100, 100, 450, 400)
  110.         self.setWindowTitle('Новая группа')
  111.  
  112.         self.group = Group()
  113.  
  114.         self.name_label = QLabel(self)
  115.         self.name_label.setText('Название:')
  116.         self.name_label.move(80, 30)
  117.  
  118.         self.name_gap = QLineEdit(self)
  119.         self.name_gap.move(80, 70)
  120.  
  121.         self.member_label = QLabel(self)
  122.         self.member_label.setText('По одному введите email участников группы:')
  123.         self.member_label.move(80, 130)
  124.  
  125.         self.member_gap = QLineEdit(self)
  126.         self.member_gap.move(80, 170)
  127.  
  128.         self.add_member_btn = QPushButton('Добавить участника', self)
  129.         self.add_member_btn.resize(self.add_member_btn.sizeHint())
  130.         self.add_member_btn.move(75, 210)
  131.         self.add_member_btn.clicked.connect(self.add_member)
  132.  
  133.         self.btn = QPushButton('Добавить в базу', self)
  134.         self.btn.resize(self.btn.sizeHint())
  135.         self.btn.move(40, 280)
  136.         self.btn.clicked.connect(self.group_init)
  137.  
  138.         self.btn = QPushButton('Завершить', self)
  139.         self.btn.resize(self.btn.sizeHint())
  140.         self.btn.move(275, 280)
  141.         self.btn.clicked.connect(self.close_all)
  142.  
  143.     def add_member(self):
  144.         new_member = self.member_gap.text()
  145.         new_member.join(list(filter(lambda x: x.isalpha(), new_member)))
  146.         if new_member == '':
  147.             return
  148.         self.group.members.append(new_member)
  149.         self.member_gap.setText('')
  150.  
  151.     def group_init(self):
  152.         self.group.name = self.name_gap.text()
  153.         if self.group.name == '':
  154.             return
  155.         self.name_gap.setText('')
  156.         self.group.members = list(set(self.group.members))
  157.         self.send(self.convert_to_json())
  158.  
  159.     def convert_to_json(self):
  160.         group_dict = {}
  161.         group_dict['name'] = self.group.name
  162.         group_dict['members'] = self.group.members
  163.         return json.dumps(group_dict)
  164.  
  165.     def send(self, json_file):
  166.         #отправить json_file новой группы на сервер
  167.         pass
  168.  
  169.     def close_all(self):
  170.         sys.exit(app.exec_())
  171.  
  172.  
  173. class MainWidget(QWidget):
  174.     def __init__(self):
  175.         super().__init__()
  176.         self.initUI()
  177.  
  178.     def initUI(self):
  179.         self.setGeometry(100, 100, 300, 400)
  180.  
  181.         self.btn_user = QPushButton('Добавить пользователей', self)
  182.         self.btn_user.resize(self.btn_user.sizeHint())
  183.         self.btn_user.move(50, 50)
  184.         self.btn_user.clicked.connect(self.new_user)
  185.  
  186.         self.btn_group = QPushButton('Добавить группы', self)
  187.         self.btn_group.resize(self.btn_group.sizeHint())
  188.         self.btn_group.move(50, 150)
  189.         self.btn_group.clicked.connect(self.new_group)
  190.  
  191.         self.btn_event = QPushButton('Добавить события', self)
  192.         self.btn_event.resize(self.btn_event.sizeHint())
  193.         self.btn_event.move(50, 250)
  194.         self.btn_event.clicked.connect(self.new_event)
  195.  
  196.  
  197.     def new_user(self):
  198.         self.open_user_wind = NewUser()
  199.         self.open_user_wind.show()
  200.  
  201.     def new_group(self):
  202.         self.open_group_wind = NewGroup()
  203.         self.open_group_wind.show()
  204.  
  205.     def new_event(self):
  206.         #вызов окна для добавления нового мероприятия
  207.         pass
  208.  
  209.  
  210. if __name__ == '__main__':
  211.     app = QApplication(sys.argv)
  212.     wid = MainWidget()
  213.     wid.show()
  214.     sys.exit(app.exec())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement