Problems with Qt How to open 2 windows that are called between them
Hi all, I'm new with Qt, the problem I have is the following:
I have a Login.py
window when I call with a button open a new Panel_administrator.py
window and this window has a button that can call Login.py
in a nutshell:
Login.py
---->calls -----> Panel_Administrador.py
and
Panel_Administrador.py
----> calls ----> Login.py
Gives me the following error:
Traceback (most recent call last): ................. ImportError: cannot import name 'panel_administrador'
my code:
import sys
import time
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QWidget
import Con_pos
from Registro import Registro
from Panel_Administrador import panel_administrador
class Login(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent= parent)
uic.loadUi("UI/Login.ui", self)
self.registro.clicked.connect(self.view_Registro)
self.ingresar.clicked.connect(self.autenticar)
def autenticar(self):
pid = self.getPID()
con = Con_pos.con_pos()
user = self.in_login.text()
password = self.in_pass.text()
fecha = time.strftime("%X") + " " + time.strftime("%x")
if user != "" and password != "":
consulta = ''' SELECT "id_usuario" FROM "usuarios"."Usuario" WHERE "id_usuario" = '%s' ; ''' %(user)
c_user = con.consulta(consulta)
consulta = ''' SELECT "pass" FROM "usuarios"."Usuario" WHERE "id_usuario" = '%s' ;''' %(user)
c_pass = con.consulta(consulta)
if c_user != None or not c_pass:
c_pass = c_pass[0][0]
if c_pass == password:
consulta = ''' INSERT INTO "usuarios"."sesion" VALUES ('%s', '%s', %s); '''%(user ,fecha, pid)
con.insertar(consulta)
print("Ingresando al sistema...")
if self.administrador(user):
self.admi = panel_administrador()
self.admi.show()
else:
print("Usuario o password incorrecto")
def administrador(self, user):
ad = ''' SELECT "id_rol" FROM "usuarios"."Rol" WHERE "rol" = 'administrador'; '''
consulta = ''' SELECT "id_usuario_Usuario" FROM "usuarios"."Usuario_Rol" WHERE "id_rol_Rol" = %s and "id_usuario_Usuario" = '%s' ''' %(ad, user)
con_res = Con_pos.con_pos().consulta(consulta)
print(con_res)
if con_res or con_res != None:
return True
else:
return False;
def getPID(self):
con = Con_pos.con_pos()
func = "pg_backend_pid"
pid = con.call_proc(func)
pid = pid[0][0]
return pid
def view_Registro(self):
self.reg = Registro()
self.reg.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
login = Login()
login.show()
sys.exit(app.exec())
Panel_Administrador.py
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QWidget
from Designar import designar
from Funciones import funciones
from Login import Login
from Admi_Users import admin_user
from Rol import rol
class panel_administrador(QWidget):
def __init__(self):
QWidget.__init__(self)
uic.loadUi("UI/Panel_Administrador.ui", self)
self.btn_funciones.clicked.connect(self.view_funciones)
self.btn_roles.clicked.connect(self.view_roles)
self.btn_usuarios.clicked.connect(self.view_usuario)
self.btn_designar.clicked.connect(self.view_designar)
self.btn_login.clicked.connect(self.view_login)
def view_funciones(self):
self.f = funciones()
self.f.show()
def view_roles(self):
self.r = rol()
self.r.show()
def view_usuario(self):
self.u = admin_user()
self.u.show()
def view_designar(self):
self.d = designar()
self.d.show()
def view_login(self):
self.l = Login()
self.l.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
pa = panel_administrador()
pa.show()
sys.exit(app.exec())