PyQt5. Нуждаюсь в простом объяснение
Нужна помощь просто пояснить ситуацию, так как нигде нету информации об этом.
Итак, есть кто-то на уроках, и курсах по PyQt5 где пишут код вручную не используя QT Designer. И у них получается код с __init__ и супер правами super init (скриншот №1):
Если же сделать скелет в QT Designer получается следующее (скриншот №2):
Вопрос 1. В чём разница? Возможно нужно накидывать скелет в Qt Designer, и потом переделывать как на скриншоте1 ? То есть, под форму кода с __init__.
Вопрос 2. Я пытаюсь сделать 2 окна. (условно назовем их окно 1 и окно 2). Я хочу чтобы с окна1 я мог нажать на кнопку, окно1 закрылось, открывшись окно2. И если в окне2 я бы нажал на кнопку, окно2 закрылось и окрылось окно1.
Я сделал импорт класса окна2 в окно1, всё отлично работает. Но как мне сделать такое в окне2, если импортировать класс окна1 - получиться ошибка "цикличный импорт". Возможно я что-то не правильно делаю. И может ли быть проблема в том, что у меня скелет кода не с этим __init__ и супер правами на него ???
Прикрепляю свой пример в котором как раз возникла ошибка и загвоздка:
1) Вообще главный тут файл login.py и запуск должен быть с него. Но я код менял, и сейчас с login.py кнопка перехода на второе окно не работает. Просто запускайте сначало signup.py, перейдете на login.py, а вот как обратно - не понимаю.
2) По самому коду подсказки, и вот с этим init если не сложно. Как перестраивать код с qt designere или как... От пытаюсь разобратся, уже как 2 нидели, но ничего не выходит.
login.py
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox, QLabel
import sys
from emptywindow import Ui_emptyWindow
from datalog import DataCommands
from signup import Ui_SignupWindow
class StartWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setGeometry(320, 180, 1280, 720)
MainWindow.setMinimumSize(QtCore.QSize(1280, 720))
MainWindow.setMaximumSize(QtCore.QSize(1280, 720))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.labelgamename = QtWidgets.QLabel(self.centralwidget)
self.labelgamename.setGeometry(QtCore.QRect(310, 100, 691, 141))
self.labelgamename.setStyleSheet("font: 72pt \"Pixel Times Bold\";")
self.labelgamename.setObjectName("labelgamename")
self.labelauthor = QtWidgets.QLabel(self.centralwidget)
self.labelauthor.setGeometry(QtCore.QRect(680, 230, 371, 71))
self.labelauthor.setStyleSheet("font: 25pt \"Ink Free\";\n"
"text-decoration: underline;")
self.labelauthor.setObjectName("labelauthor")
self.labelLogin = QtWidgets.QLabel(self.centralwidget)
self.labelLogin.setGeometry(QtCore.QRect(485, 370, 150, 70))
self.labelLogin.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelLogin.setObjectName("labelLogin")
self.labelPassword = QtWidgets.QLabel(self.centralwidget)
self.labelPassword.setGeometry(QtCore.QRect(490, 430, 140, 70))
self.labelPassword.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelPassword.setObjectName("labelPassword")
self.labelLoging = QtWidgets.QLabel(self.centralwidget)
self.labelLoging.setGeometry(QtCore.QRect(680, 320, 81, 70))
self.labelLoging.setStyleSheet("font: 63 18pt \"Yu Gothic UI Semibold\";")
self.labelLoging.setObjectName("labelLoging")
self.lineLogin = QtWidgets.QLineEdit(self.centralwidget)
self.lineLogin.setGeometry(QtCore.QRect(610, 390, 220, 40))
self.lineLogin.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle)
self.lineLogin.setClearButtonEnabled(True)
self.lineLogin.setObjectName("lineLogin")
self.linePassword = QtWidgets.QLineEdit(self.centralwidget)
self.linePassword.setGeometry(QtCore.QRect(610, 450, 220, 40))
self.linePassword.setEchoMode(QtWidgets.QLineEdit.Password)
self.linePassword.setClearButtonEnabled(True)
self.linePassword.setObjectName("linePassword")
self.buttonLogin = QtWidgets.QPushButton(self.centralwidget)
self.buttonLogin.setGeometry(QtCore.QRect(610, 510, 101, 41))
self.buttonLogin.setObjectName("buttonLogin")
self.buttonLogin.clicked.connect(self.access_check)
self.buttonSignUp = QtWidgets.QPushButton(self.centralwidget)
self.buttonSignUp.setGeometry(QtCore.QRect(730, 510, 101, 41))
self.buttonSignUp.setObjectName("buttonSignUp")
#self.buttonSignUp.clicked.connect(self.)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "TaxPark Game"))
self.labelgamename.setText(_translate("MainWindow", "TaxPark"))
self.labelauthor.setText(_translate("MainWindow", "by Vitalii Shchudlo"))
self.labelPassword.setText(_translate("MainWindow", "Password: "))
self.labelLogin.setText(_translate("MainWindow", "Username:"))
self.labelLoging.setText(_translate("MainWindowWindow", "Login"))
self.linePassword.setPlaceholderText(_translate("MainWindow", "Enter your password"))
self.lineLogin.setPlaceholderText(_translate("MainWindow", "Enter your username"))
self.buttonLogin.setText(_translate("MainWindow", "Log In"))
self.buttonSignUp.setText(_translate("MainWindow", "Sign Up"))
def openWindowTest(self):
self.window = QtWidgets.QMainWindow()
self.ui = Ui_emptyWindow()
self.ui.setupUi(self.window)
MainWindow.hide()
self.window.show()
def access_check(self):
msg = QMessageBox()
msg.setGeometry(133, 150, 500, 504)
user_login = self.lineLogin.text()
user_pass = self.linePassword.text()
check = DataCommands(user_login, user_pass)
if check.access() == True:
msg.setWindowTitle('Entering...')
msg.setIcon(QMessageBox.Information)
msg.setText('You are successfully logged in.')
msg.exec_()
else:
msg.setWindowTitle('Error')
msg.setIcon(QMessageBox.Critical)
msg.setText('Incorrect login or password.')
msg.exec_()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = StartWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
signup.py
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_SignupWindow(object):
def setupUi(self, SignupWindow):
SignupWindow.setObjectName("SignupWindow")
SignupWindow.setGeometry(320, 180, 1280, 720)
SignupWindow.setMinimumSize(QtCore.QSize(1280, 720))
SignupWindow.setMaximumSize(QtCore.QSize(1280, 720))
self.centralwidget = QtWidgets.QWidget(SignupWindow)
self.centralwidget.setObjectName("centralwidget")
self.labelgamename = QtWidgets.QLabel(self.centralwidget)
self.labelgamename.setGeometry(QtCore.QRect(310, 100, 691, 141))
self.labelgamename.setStyleSheet("font: 72pt \"Pixel Times Bold\";")
self.labelgamename.setObjectName("labelgamename")
self.labelauthor = QtWidgets.QLabel(self.centralwidget)
self.labelauthor.setGeometry(QtCore.QRect(680, 230, 371, 71))
self.labelauthor.setStyleSheet("font: 25pt \"Ink Free\";\n"
"text-decoration: underline;")
self.labelauthor.setObjectName("labelauthor")
self.linePassword = QtWidgets.QLineEdit(self.centralwidget)
self.linePassword.setGeometry(QtCore.QRect(610, 450, 220, 40))
self.linePassword.setEchoMode(QtWidgets.QLineEdit.Password)
self.linePassword.setClearButtonEnabled(True)
self.linePassword.setObjectName("linePassword")
self.labelPassword = QtWidgets.QLabel(self.centralwidget)
self.labelPassword.setGeometry(QtCore.QRect(490, 430, 111, 70))
self.labelPassword.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelPassword.setObjectName("labelPassword")
self.lineLogin = QtWidgets.QLineEdit(self.centralwidget)
self.lineLogin.setGeometry(QtCore.QRect(610, 390, 220, 40))
self.lineLogin.setClearButtonEnabled(True)
self.lineLogin.setObjectName("lineLogin")
self.labelUsername = QtWidgets.QLabel(self.centralwidget)
self.labelUsername.setGeometry(QtCore.QRect(485, 370, 121, 70))
self.labelUsername.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelUsername.setObjectName("labelUsername")
self.buttonRegister = QtWidgets.QPushButton(self.centralwidget)
self.buttonRegister.setGeometry(QtCore.QRect(610, 570, 101, 41))
self.buttonRegister.setObjectName("buttonRegister")
self.buttonLogIn = QtWidgets.QPushButton(self.centralwidget)
self.buttonLogIn.setGeometry(QtCore.QRect(730, 570, 101, 41))
self.buttonLogIn.setObjectName("buttonLogIn")
self.buttonLogIn.clicked.connect(self.openWindowLogin)
self.labelRegistration = QtWidgets.QLabel(self.centralwidget)
self.labelRegistration.setGeometry(QtCore.QRect(635, 320, 171, 70))
self.labelRegistration.setStyleSheet("font: 63 18pt \"Yu Gothic UI Semibold\";")
self.labelRegistration.setObjectName("labelRegistration")
self.linePassword_2 = QtWidgets.QLineEdit(self.centralwidget)
self.linePassword_2.setGeometry(QtCore.QRect(610, 510, 220, 40))
self.linePassword_2.setEchoMode(QtWidgets.QLineEdit.Password)
self.linePassword_2.setClearButtonEnabled(True)
self.linePassword_2.setObjectName("linePassword_2")
self.labelPassword_2 = QtWidgets.QLabel(self.centralwidget)
self.labelPassword_2.setGeometry(QtCore.QRect(400, 490, 200, 70))
self.labelPassword_2.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelPassword_2.setObjectName("labelPassword_2")
self.labelProblem2 = QtWidgets.QLabel(self.centralwidget)
self.labelProblem2.setGeometry(QtCore.QRect(850, 450, 211, 41))
self.labelProblem2.setStyleSheet("font: 63 10pt \"Yu Gothic UI Semibold\";\n"
"color: rgb(255, 0, 0);\n"
"")
self.labelProblem2.setText("")
self.labelProblem2.setObjectName("labelProblem2")
self.labelProblem1 = QtWidgets.QLabel(self.centralwidget)
self.labelProblem1.setGeometry(QtCore.QRect(850, 390, 211, 41))
self.labelProblem1.setStyleSheet("font: 63 10pt \"Yu Gothic UI Semibold\";\n"
"color: rgb(255, 0, 0);\n"
"")
self.labelProblem1.setText("")
self.labelProblem1.setObjectName("labelProblem1")
SignupWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(SignupWindow)
QtCore.QMetaObject.connectSlotsByName(SignupWindow)
def retranslateUi(self, SignupWindow):
_translate = QtCore.QCoreApplication.translate
SignupWindow.setWindowTitle(_translate("SignupWindow", "TaxPark Game"))
self.labelgamename.setText(_translate("SignupWindow", "TaxPark"))
self.labelauthor.setText(_translate("SignupWindow", "by Vitalii Shchudlo"))
self.linePassword.setPlaceholderText(_translate("SignupWindow", "Enter your password"))
self.labelPassword.setText(_translate("SignupWindow", "Password: "))
self.lineLogin.setPlaceholderText(_translate("SignupWindow", "Enter your username"))
self.labelUsername.setText(_translate("SignupWindow", "Username:"))
self.buttonRegister.setText(_translate("SignupWindow", "Register"))
self.buttonLogIn.setText(_translate("SignupWindow", "Log In"))
self.labelRegistration.setText(_translate("SignupWindow", "Registration"))
self.linePassword_2.setPlaceholderText(_translate("SignupWindow", "Confirm your password"))
self.labelPassword_2.setText(_translate("SignupWindow", "Confirm Password: "))
def openWindowLogin(self):
from login import StartWindow
self.window = QtWidgets.QMainWindow()
self.ui = StartWindow()
self.ui.setupUi(self.window)
SignupWindow.hide()
self.window.show()
# self.window = QtWidgets.QMainWindow()
# self.ui = Ui_SignupWindow()s
# self.ui.setupUi(self.window)
# SignupWindow.hide()
# self.window.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
SignupWindow = QtWidgets.QMainWindow()
ui = Ui_SignupWindow()
ui.setupUi(SignupWindow)
SignupWindow.show()
sys.exit(app.exec_())
datalog.py
import sqlite3
class DataCommands:
def __init__(self, inputed_login, inputed_password):
self.inputed_login = inputed_login
self.inputed_password = inputed_password
def access(self):
if self.check_data() == True:
return True
else:
return False
def check_data(self):
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
find_user = ('SELECT * FROM tabletest WHERE login = ? AND password = ?')
cursor.execute(find_user,[(self.inputed_login), (self.inputed_password)])
results = cursor.fetchall()
if results:
return True
else:
return False
Ответы (3 шт):
По этому куску кода кажется, что в первом случае вы, как обычно, просто создаёте объект окна и внутри его настраиваете. А второй кусок кода — это, как бы вспомогательный класс. Вы передаёте туда свой объект, и он настраивает его.
Как правильно? Не переводить QtDesigner в Python. Вместо этого просто сохраните шаблон как .ui, потом в главном файле импортируйте from PyQt5 import uic, а затем, в __init__, пропишите: uic.loadUi('file.ui', self).
Насчёт второго вопроса: да, в Python-проектах есть большая проблема, связанная с тем, что нужно делать импорты, а когда два объекта, взаимодействующие друг с другом, лежат в разных файлах, это сделать невозможно. Возможно, вам нужно пересмотреть архитектуру проекта и поместить эти классы в один файл.
И третье: вы плохо ориентируетесь в штучках ООП. super() — это не права, а указание на класс родительского объекта (упрощённо). То есть, в вашем случае, super().__init__ указывает на то, что нужно обратиться к методу __init__ класса QDialog, потому что AppWindow наследуется от QDialog.
uic.loadUi Медленный, используйте наследование. Например:
class AppWindow(QDialog, Ui_class): # 1 родитель - Qt - виджет,
#второй - сгенерированный дизайнером класс
def __init__(self):
super().__init__()
super().setupUi(self) # Вызываем функцию из класса с UI
Первое, что вы должны запомнить - НИКОГДА НЕ изменяйте модуль созданный в QT Designer. НИКОГДА.
Вы должны воспринимать этот модуль как файл ресурсов.
Создайте класс и наполните его тем что вы создали в QT Designer.
login.py
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox, QLabel
#from emptywindow import Ui_emptyWindow # ---
from datalog import DataCommands
from signup import Ui_SignupWindow
class StartWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setGeometry(320, 180, 1280, 720)
MainWindow.setMinimumSize(QtCore.QSize(1280, 720))
MainWindow.setMaximumSize(QtCore.QSize(1280, 720))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.labelgamename = QtWidgets.QLabel(self.centralwidget)
self.labelgamename.setGeometry(QtCore.QRect(310, 100, 691, 141))
self.labelgamename.setStyleSheet("font: 72pt \"Pixel Times Bold\";")
self.labelgamename.setObjectName("labelgamename")
self.labelauthor = QtWidgets.QLabel(self.centralwidget)
self.labelauthor.setGeometry(QtCore.QRect(680, 230, 371, 71))
self.labelauthor.setStyleSheet("font: 25pt \"Ink Free\";\n"
"text-decoration: underline;")
self.labelauthor.setObjectName("labelauthor")
self.labelLogin = QtWidgets.QLabel(self.centralwidget)
self.labelLogin.setGeometry(QtCore.QRect(485, 370, 150, 70))
self.labelLogin.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelLogin.setObjectName("labelLogin")
self.labelPassword = QtWidgets.QLabel(self.centralwidget)
self.labelPassword.setGeometry(QtCore.QRect(490, 430, 140, 70))
self.labelPassword.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelPassword.setObjectName("labelPassword")
self.labelLoging = QtWidgets.QLabel(self.centralwidget)
self.labelLoging.setGeometry(QtCore.QRect(680, 320, 81, 70))
self.labelLoging.setStyleSheet("font: 63 18pt \"Yu Gothic UI Semibold\";")
self.labelLoging.setObjectName("labelLoging")
self.lineLogin = QtWidgets.QLineEdit(self.centralwidget)
self.lineLogin.setGeometry(QtCore.QRect(610, 390, 220, 40))
self.lineLogin.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle)
self.lineLogin.setClearButtonEnabled(True)
self.lineLogin.setObjectName("lineLogin")
self.linePassword = QtWidgets.QLineEdit(self.centralwidget)
self.linePassword.setGeometry(QtCore.QRect(610, 450, 220, 40))
self.linePassword.setEchoMode(QtWidgets.QLineEdit.Password)
self.linePassword.setClearButtonEnabled(True)
self.linePassword.setObjectName("linePassword")
self.buttonLogin = QtWidgets.QPushButton(self.centralwidget)
self.buttonLogin.setGeometry(QtCore.QRect(610, 510, 101, 41))
self.buttonLogin.setObjectName("buttonLogin")
# self.buttonLogin.clicked.connect(self.access_check) # ---
self.buttonSignUp = QtWidgets.QPushButton(self.centralwidget)
self.buttonSignUp.setGeometry(QtCore.QRect(730, 510, 101, 41))
self.buttonSignUp.setObjectName("buttonSignUp")
# #self.buttonSignUp.clicked.connect(self.) # ---
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "TaxPark Game"))
self.labelgamename.setText(_translate("MainWindow", "TaxPark"))
self.labelauthor.setText(_translate("MainWindow", "by Vitalii Shchudlo"))
self.labelPassword.setText(_translate("MainWindow", "Password: "))
self.labelLogin.setText(_translate("MainWindow", "Username:"))
self.labelLoging.setText(_translate("MainWindowWindow", "Login"))
self.linePassword.setPlaceholderText(_translate("MainWindow", "Enter your password"))
self.lineLogin.setPlaceholderText(_translate("MainWindow", "Enter your username"))
self.buttonLogin.setText(_translate("MainWindow", "Log In"))
self.buttonSignUp.setText(_translate("MainWindow", "Sign Up"))
'''
НИКОГДА не изменяйте модуль созданный в `Qt Designer`. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
def openWindowTest(self):
self.window = QtWidgets.QMainWindow()
self.ui = Ui_emptyWindow()
self.ui.setupUi(self.window)
MainWindow.hide()
self.window.show()
def access_check(self):
msg = QMessageBox()
msg.setGeometry(133, 150, 500, 504)
user_login = self.lineLogin.text()
user_pass = self.linePassword.text()
check = DataCommands(user_login, user_pass)
if check.access() == True:
msg.setWindowTitle('Entering...')
msg.setIcon(QMessageBox.Information)
msg.setText('You are successfully logged in.')
msg.exec_()
else:
msg.setWindowTitle('Error')
msg.setIcon(QMessageBox.Critical)
msg.setText('Incorrect login or password.')
msg.exec_()
'''
# Создаем класс для окна регистрации # !!!
class SignupWindow(QtWidgets.QMainWindow, Ui_SignupWindow): # +++
def __init__(self):
super().__init__()
self.setupUi(self) # добавляем дизайн из Ui_SignupWindow
# Создаем класс для Главного окна
class MainWindow(QtWidgets.QMainWindow, StartWindow):
def __init__(self):
super().__init__()
self.setupUi(self) # добавляем дизайн из StartWindow
# пишем логику приложения
self.buttonLogin.clicked.connect(self.access_check)
self.buttonSignUp.clicked.connect(self.openWindowTest)
def openWindowTest(self):
self.signupWindow = SignupWindow()
self.signupWindow.buttonLogIn.clicked.connect(self.openWindowLogin)
self.signupWindow.buttonRegister.clicked.connect(self.goRegister)
self.signupWindow.show()
self.hide()
def openWindowLogin(self):
self.signupWindow.hide()
self.show()
def goRegister(self):
if (self.signupWindow.lineLogin.text() and \
self.signupWindow.linePassword.text() and \
self.signupWindow.linePassword_2.text()) and \
(self.signupWindow.linePassword.text() == self.signupWindow.linePassword_2.text()):
QtWidgets.QMessageBox.information(self, "Внимание", "Можно регистрировать клиента.")
# QtWidgets.QMessageBox.information(self, "Ошибка", "Что-то пошло не так.")
else:
# QtWidgets.QMessageBox.information(self, "Внимание", "Можно регистрировать клиента.")
QtWidgets.QMessageBox.information(self, "Ошибка", "Что-то пошло не так.")
def access_check(self):
msg = QMessageBox()
msg.setGeometry(133, 150, 500, 504)
user_login = self.lineLogin.text()
user_pass = self.linePassword.text()
if user_login and user_pass: # +++ Надо что-то и как-о проверять
check = DataCommands(user_login, user_pass)
if check.access() == True:
msg.setWindowTitle('Entering...')
msg.setIcon(QMessageBox.Information)
msg.setText('You are successfully logged in.')
msg.exec_()
else:
msg.setWindowTitle('Error')
msg.setIcon(QMessageBox.Critical)
msg.setText('Incorrect login or password.')
msg.exec_()
else: # +++
QtWidgets.QMessageBox.information(self, "Внимание", "Введите login и password.")
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
signup.py
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_SignupWindow(object):
def setupUi(self, SignupWindow):
SignupWindow.setObjectName("SignupWindow")
SignupWindow.setGeometry(320, 180, 1280, 720)
SignupWindow.setMinimumSize(QtCore.QSize(1280, 720))
SignupWindow.setMaximumSize(QtCore.QSize(1280, 720))
self.centralwidget = QtWidgets.QWidget(SignupWindow)
self.centralwidget.setObjectName("centralwidget")
self.labelgamename = QtWidgets.QLabel(self.centralwidget)
self.labelgamename.setGeometry(QtCore.QRect(310, 100, 691, 141))
self.labelgamename.setStyleSheet("font: 72pt \"Pixel Times Bold\";")
self.labelgamename.setObjectName("labelgamename")
self.labelauthor = QtWidgets.QLabel(self.centralwidget)
self.labelauthor.setGeometry(QtCore.QRect(680, 230, 371, 71))
self.labelauthor.setStyleSheet("font: 25pt \"Ink Free\";\n"
"text-decoration: underline;")
self.labelauthor.setObjectName("labelauthor")
self.linePassword = QtWidgets.QLineEdit(self.centralwidget)
self.linePassword.setGeometry(QtCore.QRect(610, 450, 220, 40))
self.linePassword.setEchoMode(QtWidgets.QLineEdit.Password)
self.linePassword.setClearButtonEnabled(True)
self.linePassword.setObjectName("linePassword")
self.labelPassword = QtWidgets.QLabel(self.centralwidget)
self.labelPassword.setGeometry(QtCore.QRect(490, 430, 111, 70))
self.labelPassword.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelPassword.setObjectName("labelPassword")
self.lineLogin = QtWidgets.QLineEdit(self.centralwidget)
self.lineLogin.setGeometry(QtCore.QRect(610, 390, 220, 40))
self.lineLogin.setClearButtonEnabled(True)
self.lineLogin.setObjectName("lineLogin")
self.labelUsername = QtWidgets.QLabel(self.centralwidget)
self.labelUsername.setGeometry(QtCore.QRect(485, 370, 121, 70))
self.labelUsername.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelUsername.setObjectName("labelUsername")
self.buttonRegister = QtWidgets.QPushButton(self.centralwidget)
self.buttonRegister.setGeometry(QtCore.QRect(610, 570, 101, 41))
self.buttonRegister.setObjectName("buttonRegister")
self.buttonLogIn = QtWidgets.QPushButton(self.centralwidget)
self.buttonLogIn.setGeometry(QtCore.QRect(730, 570, 101, 41))
self.buttonLogIn.setObjectName("buttonLogIn")
# self.buttonLogIn.clicked.connect(self.openWindowLogin) # ---
self.labelRegistration = QtWidgets.QLabel(self.centralwidget)
self.labelRegistration.setGeometry(QtCore.QRect(635, 320, 171, 70))
self.labelRegistration.setStyleSheet("font: 63 18pt \"Yu Gothic UI Semibold\";")
self.labelRegistration.setObjectName("labelRegistration")
self.linePassword_2 = QtWidgets.QLineEdit(self.centralwidget)
self.linePassword_2.setGeometry(QtCore.QRect(610, 510, 220, 40))
self.linePassword_2.setEchoMode(QtWidgets.QLineEdit.Password)
self.linePassword_2.setClearButtonEnabled(True)
self.linePassword_2.setObjectName("linePassword_2")
self.labelPassword_2 = QtWidgets.QLabel(self.centralwidget)
self.labelPassword_2.setGeometry(QtCore.QRect(400, 490, 200, 70))
self.labelPassword_2.setStyleSheet("font: 63 14pt \"Yu Gothic UI Semibold\";")
self.labelPassword_2.setObjectName("labelPassword_2")
self.labelProblem2 = QtWidgets.QLabel(self.centralwidget)
self.labelProblem2.setGeometry(QtCore.QRect(850, 450, 211, 41))
self.labelProblem2.setStyleSheet("font: 63 10pt \"Yu Gothic UI Semibold\";\n"
"color: rgb(255, 0, 0);\n"
"")
self.labelProblem2.setText("")
self.labelProblem2.setObjectName("labelProblem2")
self.labelProblem1 = QtWidgets.QLabel(self.centralwidget)
self.labelProblem1.setGeometry(QtCore.QRect(850, 390, 211, 41))
self.labelProblem1.setStyleSheet("font: 63 10pt \"Yu Gothic UI Semibold\";\n"
"color: rgb(255, 0, 0);\n"
"")
self.labelProblem1.setText("")
self.labelProblem1.setObjectName("labelProblem1")
SignupWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(SignupWindow)
QtCore.QMetaObject.connectSlotsByName(SignupWindow)
def retranslateUi(self, SignupWindow):
_translate = QtCore.QCoreApplication.translate
SignupWindow.setWindowTitle(_translate("SignupWindow", "TaxPark Game"))
self.labelgamename.setText(_translate("SignupWindow", "TaxPark"))
self.labelauthor.setText(_translate("SignupWindow", "by Vitalii Shchudlo"))
self.linePassword.setPlaceholderText(_translate("SignupWindow", "Enter your password"))
self.labelPassword.setText(_translate("SignupWindow", "Password: "))
self.lineLogin.setPlaceholderText(_translate("SignupWindow", "Enter your username"))
self.labelUsername.setText(_translate("SignupWindow", "Username:"))
self.buttonRegister.setText(_translate("SignupWindow", "Register"))
self.buttonLogIn.setText(_translate("SignupWindow", "Log In"))
self.labelRegistration.setText(_translate("SignupWindow", "Registration"))
self.linePassword_2.setPlaceholderText(_translate("SignupWindow", "Confirm your password"))
self.labelPassword_2.setText(_translate("SignupWindow", "Confirm Password: "))
'''
НИКОГДА не изменяйте модуль созданный в `Qt Designer`. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
def openWindowLogin(self):
from login import StartWindow
self.window = QtWidgets.QMainWindow()
self.ui = StartWindow()
self.ui.setupUi(self.window)
SignupWindow.hide()
self.window.show()
# self.window = QtWidgets.QMainWindow()
# self.ui = Ui_SignupWindow()s
# self.ui.setupUi(self.window)
# SignupWindow.hide()
# self.window.show()
'''
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
SignupWindow = QtWidgets.QMainWindow()
ui = Ui_SignupWindow()
ui.setupUi(SignupWindow)
SignupWindow.show()
sys.exit(app.exec_())
datalog.py
import sqlite3
class DataCommands:
def __init__(self, inputed_login, inputed_password):
self.inputed_login = inputed_login
self.inputed_password = inputed_password
def access(self):
if self.check_data() == True:
return True
else:
return False
def check_data(self):
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
find_user = ('SELECT * FROM tabletest WHERE login = ? AND password = ?')
cursor.execute(find_user, [(self.inputed_login), (self.inputed_password)])
results = cursor.fetchall()
if results:
return True
else:
return False
PS. Я не смотрел вашу логику работы с БД.


