На
import sys
from PyQt6.QtWidgets import (
QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit,
QPushButton, QMessageBox, QInputDialog
)
class DatabaseApp(QWidget):
def __init__(self):
super().__init__()
self.users = {}
self.setup_ui()
def setup_ui(self):
self.setWindowTitle('База данных курьерской фирмы')
self.setGeometry(100, 100, 300, 250)
layout = QVBoxLayout()
self.email_input = QLineEdit()
self.email_input.setPlaceholderText('Электронная почта')
layout.addWidget(QLabel('Электронная почта:'))
layout.addWidget(self.email_input)
self.password_input = QLineEdit()
self.password_input.setEchoMode(QLineEdit.EchoMode.Password)
self.password_input.setPlaceholderText('Пароль')
layout.addWidget(QLabel('Пароль:'))
layout.addWidget(self.password_input)
for btn_text, handler in [
('Зарегистрироваться', self.register),
('Войти', self.login)
]:
btn = QPushButton(btn_text)
btn.clicked.connect(handler)
layout.addWidget(btn)
self.setLayout(layout)
def show_message(self, title, text, is_error=False):
msg_type = QMessageBox.warning if is_error else QMessageBox.information
msg_type(self, title, text)
def validate_credentials(self, email, password):
if not email or not password:
self.show_message('Ошибка', 'Заполните все поля', True)
return False
return True
def register(self):
email = self.email_input.text().strip()
password = self.password_input.text().strip()
if not self.validate_credentials(email, password):
return
if email in self.users:
self.show_message('Ошибка', 'Пользователь уже существует', True)
return
self.users[email] = password
self.show_message('Успех', 'Регистрация успешна!')
self.request_credentials()
def request_credentials(self):
email, ok1 = QInputDialog.getText(self, 'Вход', 'Электронная почта:')
if not ok1:
return
password, ok2 = QInputDialog.getText(
self, 'Вход', 'Пароль:',
QLineEdit.EchoMode.Password
)
if not ok2:
return
self.verify_login(email, password)
def verify_login(self, email, password):
if email in self.users and self.users[email] == password:
self.show_message('Успех', 'Вход выполнен успешно!')
else:
self.show_message('Ошибка', 'Неверные учетные данные', True)
def login(self):
email = self.email_input.text().strip()
password = self.password_input.text().strip()
if not self.validate_credentials(email, password):
return
self.verify_login(email, password)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DatabaseApp()
window.show()
sys.exit(app.exec())
import sys
from PyQt6.QtWidgets import (
QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox
)
class DatabaseApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.users = {} # Словарь для хранения пользователей (email: password)
def initUI(self):
self.setWindowTitle('База данных курьерской фирмы')
self.setGeometry(100, 100, 300, 250)
layout = QVBoxLayout()
self.email _label = QLabel('Электронная почта:')
self.email _input = QLineEdit()
layout.addWidget( self.email _label)
layout.addWidget( self.email _input)
self.password_label = QLabel('Пароль:')
self.password_input = QLineEdit()
self.password_input.setEchoMode(QLineEdit.EchoMode.Password)
layout.addWidget(self.password_label)
layout.addWidget(self.password_input)
self.register_button = QPushButton('Зарегистрироваться')
self.register_button.clicked.connect(self.register)
layout.addWidget(self.register_button)
self.login_button = QPushButton('Войти')
self.login_button.clicked.connect(self.login)
layout.addWidget(self.login_button)
self.setLayout(layout)
def register(self):
email = self.email _input.text()
password = self.password_input.text()
if email in self.users:
QMessageBox.warning(self, 'Ошибка', 'Пользователь с такой электронной почтой уже существует.')
else:
self.users[email] = password
QMessageBox.information(self, 'Успех', 'Регистрация прошла успешно!')
# Запрос повторного ввода электронной почты и пароля
self.request_credentials()
def request_credentials(self):
email, ok1 = QInputDialog.getText(self, 'Введите электронную почту', 'Электронная почта:')
if not ok1:
return
password, ok2 = QInputDialog.getText(self, 'Введите пароль', 'Пароль:', QLineEdit.EchoMode.Password)
if not ok2:
return
if email in self.users and self.users[email] == password:
QMessageBox.information(self, 'Успех', 'Вход выполнен успешно!')
else:
QMessageBox.warning(self, 'Ошибка', 'Пароль неверный. Попробуйте еще раз.')
def login(self):
email = self.email _input.text()
password = self.password_input.text()
if email in self.users and self.users[email] == password:
QMessageBox.information(self, 'Успех', 'Вход выполнен успешно!')
else:
QMessageBox.warning(self, 'Ошибка', 'Пароль неверный. Попробуйте еще раз.')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DatabaseApp()
window.show()
sys.exit(app.exec())