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, 'Ошибка', 'Пароль неверный. Попробуйте еще раз.')
Лев Перфилов
Просветленный
(29403)
максим гузенко, У тебя каждая переменная self.email _input и self.email _label записаны с пробелом в названии и с неправильным отступом.
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())