PyQt5 Yapısını değerlendirme

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
 
import product
from Window.LoginWindow import *
from Window.ProductWindow import *
import sign
 
# Uygulama oluştur
class WindowMain():
    app = QApplication(sys.argv)
    def __init__(self):
        self.ui = Ui_window()
        self.ui.setupUi(mainWindow)
        mainWindow.show()
 
        self.ui.pushButton.clicked.connect(self.sign_window)
 
        self.sign_login = sign.login()
 
        self.isLogin = False
 
        sys.exit(self.app.exec_())
 
    def on_button_clicked(self):
        alert = QMessageBox()
        if self.isLogin == True:
            alert.setText('Giriş başarılı')
            return ProductWindow()
        elif self.isLogin == False:
            alert.setText('Bilgiler yanlış')
        else:
            alert.setText('Bilinmeyen bir hata!')
        alert.exec()
 
    def sign_window(self):
        _uname = self.ui.line_uname.text()
        _pass = self.ui.line_pass.text()
        n = self.sign_login.squary(_uname, _pass)
        self.isLogin = n
        return self.on_button_clicked()
 
class ProductWindow():
    def __init__(self):
        self.ui = Ui_MainWindow()
        self.ui.setupUi(mainWindow)
 
mainWindow = QMainWindow()
WindowMain()

Bu kod şimdilik istediğim gibi çalışıyor. Şifre ekranından sonra uygulamayı açıyor. Bunun kullanımı doğru mu? Değilse nasıl yapmalıyım?

Sonuçta kodun çalışmasından çok doğruluğu ve okunaklı olması da önemli.