尝试使用PyQt5和QT设计器开发GUI时遇到问题。
我想使用uic
模块,我有一个名为.ui
的{{1}}文件和另一个registro.ui
,我可以从login.ui
拨打login.ui
,点击按钮registry.ui
我还分别有registro
,Login.py
个文件
我的目的是点击注册按钮,然后打开注册窗口
仅使用Registro.py
方法?
这里我展示了我的代码
课程登录
uic.loadUI()
login.py
Class Registro:
import sys
import time
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
from PyQt5 import uic
import Con_pos
from Registro import Registro
class Login(QWidget):
def __init__(self):
QWidget.__init__(self)
uic.loadUi("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()
print(password)
fecha = time.strftime("%X") + " " + time.strftime("%x")
if user != "" and password != "":
consulta = ''' SELECT "id_user" FROM "User" WHERE "id_user" = '%s' ; ''' %(user)
c_user = con.consulta(consulta)
print(c_user)
consulta = ''' SELECT "pass" FROM "User" WHERE "id_user" = '%s' ;''' %(user)
c_pass = con.consulta(consulta)
if c_user != None:
c_pass = c_pass[0]
print("test")
print(c_pass)
if c_pass == password:
consulta = ''' INSERT INTO "sesion" VALUES ('%s', '%s', '%s'); '''%(fecha ,pid, user)
con.insertar(consulta)
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):
reg = Registro.Registro()
reg.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
login = Login()
login.show()
sys.exit(app.exec())
Registro.py
答案 0 :(得分:0)
您必须将参数传递给新窗口,您可以通过两种方式执行此操作:
def view_Registro(self):
self.reg = Registro()
self.reg.show()
def view_Registro(self):
reg = Registro(self)
reg.show()
对于此解决方案,您必须更改:
class Registro(QMainWindow):
con = Con_pos.con_pos()
def __init__(self):
QMainWindow.__init__(self)
到
class Registro(QMainWindow):
con = Con_pos.con_pos()
def __init__(self, parent=None):
QMainWindow.__init__(self, parent=parent)