Python 在pyqt中使用函数更改窗口时出现问题

Python 在pyqt中使用函数更改窗口时出现问题,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我在另一个py文件(core.py)中有一个函数,它在(debug.py)文件中运行一个名为mainmenudirector()的函数。这个函数改变了窗口,在过去的三次窗口切换中都起了作用,我复制了相同的代码,做了相同的事情,但它不“起作用”。主菜单ui确实会出现,但它是另一个窗口,而不是窗口开关。任何帮助都将不胜感激。mainmenudirectorcore()在名为loginchecker()的函数中调用 我在debug.py文件中尝试了这个函数mainmenudirectorcore(),

我在另一个py文件(core.py)中有一个函数,它在(debug.py)文件中运行一个名为mainmenudirector()的函数。这个函数改变了窗口,在过去的三次窗口切换中都起了作用,我复制了相同的代码,做了相同的事情,但它不“起作用”。主菜单ui确实会出现,但它是另一个窗口,而不是窗口开关。任何帮助都将不胜感激。mainmenudirectorcore()在名为loginchecker()的函数中调用

我在debug.py文件中尝试了这个函数mainmenudirectorcore(),它与我的其他类似的窗口更改函数一样工作正常。我还使用了.close() 工作正常,但新的ui(主窗口)会在另一个窗口中打开

debug.PY文件
########################################
导入核心,sys
从PyQt5导入QtWidgets,uic
从PyQt5.QtWidgets导入*
#加载两个用户界面文件
uifile_1='login_menu.ui'
form_1,base_1=uic.loadUiType(uifile_1)
uifile_2='register_menu.ui'
form_2,base_2=uic.loadUiType(uifile_2)
uifile_3='dialog_register_success.ui'
form_3,base_3=uic.loadUiType(uifile_3)
uifile_4='dialog_register_fail.ui'
form_4,base_4=uic.loadUiType(uifile_4)
uifile_5='dialog_login_fail.ui'
form_5,base_5=uic.loadUiType(uifile_5)
uifile_6='main_menu.ui'
form_6,base_6=uic.loadUiType(uifile_6)
类登录窗口(基本窗口1,表单窗口1):
定义初始化(自):
super(base_1,self)。\u初始化
self.setupUi(self)
#登录按钮
self.button=self.findChild(QtWidgets.QPushButton,“按钮”)
self.button.clicked.connect(self.logindirect)
#注册按钮
self.button=self.findChild(qtwidts.QPushButton,'butdown_2')
self.button.clicked.connect(self.regdirect)
#用户名字段
self.username=self.findChild(qtwidts.QLineEdit,'lineEdit')
#密码字段
self.password=self.findChild(qtwidts.QLineEdit,'lineEdit_2')
#数据库ip的标签
self.databaseip=self.findChild(qtwidts.QLabel,'label_5')
self.databaseip.setText(“数据库ip:+core.dbhost”)
def主菜单控制器(自身):#主菜单控制器
self.hide()
self.main=mainmenuwindow()
self.main.show()
self.close()
类主菜单窗口(基本菜单6,表单菜单6):#主窗口
定义初始化(自):
super(base_6,self)。uu init_uu()
self.setupUi(self)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=QApplication(sys.argv)
ex=loginwindow()
例如:show()
sys.exit(app.exec_())
#######################################################################################
#CORE.PY文件
导入调试
导入hashlib、uuid、os、mysql.connector
dbhost=“localhost”
def mainmenudirectorcore():
全局主目录核心
从调试导入登录窗口
mainmenudirectorcore=loginwindow()
mainmenudirectorcore.mainmenudirector()
def loginchecker(用户名\验证\登录,密码\验证\登录):
mydb=mysql.connector.connect(
host=“localhost”,
user=“root”,
passwd=“pwdpwd”,
database=“mydatabase”
)
mycursor=mydb.cursor()
a1=str(用户名\验证\登录)
a2=str(密码验证登录)
cursor=mydb.cursor()
salt=“5gz”
db_password=a2+salt
h=hashlib.md5(db_password.encode())
打印(h.hexdigest())
sql=“从用户名=%s和密码=%s的帐户中选择*”
val=(a1,h.hexdigest())
cursor.execute(sql,val)
结果=cursor.fetchall()
打印(结果)
如果结果是:
打印(“欢迎”+a1+“!”)
mainmenudirectorcore()
其他:
打印(“错误”)
全局logfail
从调试导入登录窗口
logfail=loginwindow()
logfail.logfailfunc()
def注册表检查器(rusername、rfirstname、rlastname、rpassword、rconfirmpassword):
a1=str(rusername)
a2=str(rfirstname)
a3=str(rlastname)
a4=str(rpassword)
a5=str(rconfirmpassword)
如果a4!=a5或a4=''或a5='':
打印(“密码不匹配或为空”)
#注册失败对话框
全局regfail
从调试导入注册表窗口
regfail=regwindow()
regfail.regfailfunc()
其他:
mydb=mysql.connector.connect(
host=“localhost”,
user=“root”,
passwd=“pwdpwd”,
database=“mydatabase”
)
cursor=mydb.cursor()
sql2=“从用户名=%s的帐户中选择用户名”
val=(a1)
cursor.execute((sql2),(val,))
data=cursor.fetchall()
如果没有数据:
打印(“未找到”)
mycursor=mydb.cursor()
salt=“5gz”
db_password=a4+salt
h=hashlib.md5(db_password.encode())
打印(h.hexdigest())
sql=“在帐户中插入(用户名、密码、姓氏、姓氏)值(%s,%s,%s,%s)”
val=(a1,h.hexdigest(),a2,a3)
mycursor.execute(sql,val)
mydb.commit()
打印(mycursor.rowcount,“插入记录”)
#运行注册确认
#从调试导入注册表窗口
全局regconfirm
从调试导入注册表窗口
regconfirm=regwindow()
regconfirm.regconfirmfunc()
其他:
打印(“找到,注册未成功。”)
#注册失败对话框
从调试导入注册表窗口
regfail=regwindow()
regfail.regfailfunc()```

首先,如果uuu name_uuu==“uuuu main_uuuuu”:应该在那里导入核心和系统,但从不在代码中使用它们?我会。我再寄一些code@elco_benoz提供@elco_benoz我没有要求链接,MRE必须在您的问题中,否则您的问题将脱离主题。