Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt4 import QtCore, QtGui
- import sys, ctypes, mysql.connector
- user32 = ctypes.windll.user32
- SCREEN_WIDTH = user32.GetSystemMetrics(0)/2 - 120
- SCREEN_HEIGHT = user32.GetSystemMetrics(1)/2 - 150
- version = '0.05'
- database = mysql.connector.connect(user='Admin', password='123321', host='127.0.0.1', database='register')
- cursor = database.cursor(buffered=True)
- class Main(QtGui.QWidget):
- def __init__(self):
- super(Main, self).__init__()
- self.setWindowTitle('Register ' + version)
- self.setGeometry(SCREEN_WIDTH, SCREEN_HEIGHT, 240, 100)
- self.setMaximumSize(400, 500)
- self.layout = QtGui.QGridLayout(self)
- self.setLayout(self.layout)
- self.login_txt = QtGui.QLabel(text='Login:')
- self.layout.addWidget(self.login_txt, 1, 0, 1, 4)
- self.login_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.login_edit, 2, 0, 1, 4)
- self.password_txt = QtGui.QLabel(text='Password:')
- self.layout.addWidget(self.password_txt, 3, 0, 1, 4)
- self.password_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.password_edit, 4, 0, 1, 4)
- self.password_edit.setEchoMode(QtGui.QLineEdit.Password)
- self.password_rpt_txt = QtGui.QLabel(text='Repet password:')
- self.layout.addWidget(self.password_rpt_txt, 5, 0, 1, 4)
- self.password_rpt_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.password_rpt_edit, 6, 0, 1, 4)
- self.password_rpt_edit.setEchoMode(QtGui.QLineEdit.Password)
- self.email_txt = QtGui.QLabel(text='Email:')
- self.layout.addWidget(self.email_txt, 7, 0, 1, 4)
- self.email_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.email_edit, 8, 0, 1, 4)
- self.city_txt = QtGui.QLabel(text='City:')
- self.layout.addWidget(self.city_txt, 9, 0, 1, 2)
- self.city_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.city_edit, 10, 0, 1, 2)
- self.postal_txt = QtGui.QLabel(text='Postal code:')
- self.layout.addWidget(self.postal_txt, 9, 2, 1, 2)
- self.postal_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.postal_edit, 10, 2, 1, 2)
- self.street_txt = QtGui.QLabel(text='Street:')
- self.layout.addWidget(self.street_txt, 11, 0, 1, 2)
- self.street_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.street_edit, 12, 0, 1, 2)
- self.number_txt = QtGui.QLabel(text='Number:')
- self.layout.addWidget(self.number_txt, 11, 2, 1, 2)
- self.number_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.number_edit, 12, 2, 1, 2)
- self.date_txt = QtGui.QLabel(text='Date of birth (dd/mm/yyyy):')
- self.layout.addWidget(self.date_txt, 13, 0, 1, 4)
- self.day_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.day_edit, 14, 0, 1, 1)
- self.month_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.month_edit, 14, 1, 1, 1)
- self.year_edit = QtGui.QLineEdit()
- self.layout.addWidget(self.year_edit, 14, 2, 1, 2)
- self.rules = QtGui.QCheckBox(text='''I'm accepting the rules.''')
- self.layout.addWidget(self.rules, 15, 0, 1, 4)
- self.account_btn = QtGui.QPushButton(text='Have you got an accout?')
- self.layout.addWidget(self.account_btn, 16, 0, 1, 2)
- self.account_btn.clicked.connect(self.login_method)
- self.done_btn = QtGui.QPushButton(text='Done.')
- self.layout.addWidget(self.done_btn, 16, 2, 1, 2)
- self.done_btn.clicked.connect(self.done_method)
- self.show()
- def login_method(self):
- for element in [self.login_txt, self.login_edit, self.password_txt, self.password_edit,
- self.password_rpt_txt, self.password_rpt_edit, self.email_txt, self.email_edit,
- self.city_txt, self.city_edit, self.postal_txt, self.postal_edit,self.street_txt, self.street_edit,
- self.number_txt, self.number_edit, self.date_txt,self.day_edit, self.month_edit, self.year_edit,
- self.rules, self.account_btn, self.done_btn]:
- element.hide()
- self.setFixedSize(240, 150)
- self.setMaximumSize(250, 250)
- self.login_txt_log = QtGui.QLabel(text='Login:')
- self.layout.addWidget(self.login_txt_log, 0, 0, 1, 4)
- self.login_edit_log = QtGui.QLineEdit()
- self.layout.addWidget(self.login_edit_log, 1, 0, 1, 4)
- self.password_txt_log = QtGui.QLabel(text='Password:')
- self.layout.addWidget(self.password_txt_log, 2, 0, 1, 4)
- self.password_edit_log = QtGui.QLineEdit()
- self.layout.addWidget(self.password_edit_log, 3, 0, 1, 4)
- self.password_edit_log.setEchoMode(QtGui.QLineEdit.Password)
- self.login_btn_log = QtGui.QPushButton(text='''Don't have an account?''')
- self.layout.addWidget(self.login_btn_log, 4, 0, 1, 2)
- self.login_btn_log.clicked.connect(self.register_method)
- self.done_btn_log = QtGui.QPushButton(text='Done.')
- self.layout.addWidget(self.done_btn_log, 4, 2, 1, 2)
- self.done_btn_log.clicked.connect(self.done_method_log)
- def register_method(self):
- for element in [self.login_txt, self.login_edit, self.password_txt, self.password_edit,
- self.password_rpt_txt, self.password_rpt_edit, self.email_txt, self.email_edit,
- self.city_txt, self.city_edit, self.postal_txt, self.postal_edit,self.street_txt, self.street_edit,
- self.number_txt, self.number_edit, self.date_txt,self.day_edit, self.month_edit, self.year_edit,
- self.rules, self.account_btn, self.done_btn]:
- element.show()
- for element2 in [self.login_txt_log, self.login_edit_log, self.password_txt_log, self.password_edit_log,
- self.login_btn_log, self.done_btn_log]:
- element2.hide()
- self.setFixedSize(240, 400)
- self.setMaximumSize(400, 500)
- def done_method(self):
- cursor = database.cursor(buffered=True)
- self.a = 0
- if len(self.login_edit.text()) > 3:
- if len(self.login_edit.text()) < 20:
- self.a += 1
- else:
- Message('Login error!', 'Login is to long.\nTry less than 20 characters.').exec_()
- else:
- Message('Login error!', 'Login is to short.\nTry more than 3 characters.').exec_()
- if len(self.password_edit.text()) > 3 or len(self.password_rpt_edit.text()) > 3:
- if len(self.password_edit.text()) < 20 or len(self.password_rpt_edit.text()) < 20:
- self.a += 1
- else:
- Message('Password error!', 'Password is to long.\nTry less than 20 characters.').exec_()
- else:
- Message('Password error!', 'Password is to short.\nTry more than 3 characters.').exec_()
- if self.password_edit.text() == self.password_rpt_edit.text():
- self.a += 1
- else:
- Message('Password error!', 'Passwords are not the same.').exec_()
- for sufix in ['.com', '.net', '.pl', '.eu', '.org']:
- if self.email_edit.text().rfind(sufix) != -1:
- self.a += 1
- break
- else:
- Message('E-mail error!', 'Email is incorrect!').exec_()
- if len(self.postal_edit.text()) != 6 or self.postal_edit.text()[2] != '-':
- Message('Postal code error!', 'Postal code has wrong format!').exec_()
- else:
- self.a += 1
- if len(self.day_edit.text()) != 2 or len(self.month_edit.text()) != 2\
- or len(self.year_edit.text()) != 4 or int(self.month_edit.text()) > 12\
- or int(self.month_edit.text()) < 1 or int(self.year_edit.text()) < 1900 \
- or int(self.year_edit.text()) > 2017 or int(self.day_edit.text()) > 31 \
- or int(self.day_edit.text()) < 1:
- Message('Date error!', 'Date of birth is incorrect format.').exec_()
- else:
- self.a += 1
- if self.rules.isChecked():
- self.a += 1
- else:
- Message('Rules!', 'Accept the rules!').exec_()
- if self.a == 7:
- cursor.execute('SELECT Login FROM users')
- data = cursor.fetchall()
- self.date_of_birth = self.day_edit.text() + '-' + self.month_edit.text() + '-' + self.year_edit.text()
- for i in range(len(data)):
- if self.login_edit.text() != data[0][i]:
- cursor.execute('SELECT Email FROM users')
- data = cursor.fetchall()
- if self.email_edit.text() != data[0][i]:
- cursor.execute("INSERT INTO users (UserIndex, Login, Password, Email, City, PostalCode, Street, Number, DateOfBirth) VALUES (2, 'Tata', '123321', 'gówno@wp.pl', 'Waaaaa', '21-371', 'Adddddddd', '54', '12-12-1990')")
- data = cursor.fetchall()
- print(data)
- else:
- Message('Email error!', 'Email is in use by somebody else. Try another one.').exec_()
- else:
- Message('Login error!', 'Login is in use by somebody else. Try another one.').exec_()
- cursor.close()
- def done_method_log(self):
- self.b = 0
- #zrobic tu sprawdzanie w bazie danych
- if self.b == 3:
- print('Logging')
- else:
- Message('Unknown error!', 'Something went wrong :(').exec_()
- class Message(QtGui.QMessageBox):
- def __init__(self, title, txt):
- super(Message, self).__init__()
- self.setWindowTitle(title)
- self.setGeometry(user32.GetSystemMetrics(0)/2 - 50, user32.GetSystemMetrics(1)/2, 100, 100)
- myFont = QtGui.QFont()
- myFont.setPointSize(10)
- self.setText(txt)
- self.setFont(myFont)
- self.show()
- app = QtGui.QApplication(sys.argv)
- root = Main()
- sys.exit(app.exec_())
- database.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement