我正在使用PyQt5创建两个窗口,主窗口和信息窗口。我想来回穿过他们,这样
初始状态: 如果主窗口打开 我可以点击按钮信息
如果点击了按钮信息 信息窗口打开,主要关闭 我可以点击主按钮
3。 如果单击主按钮 信息窗口打开,主要关闭
但是,如果我从主窗口运行程序, 我将能够通过主按钮
进入信息,但不能返回主页Traceback (most recent call last):
File "~/Description.py", line 259, in Show_Main
Info.close()
NameError: name 'Info' is not defined
类似地,如果我从信息窗口运行程序,我将能够转到main,但不能返回信息
Traceback (most recent call last):
File "~/M.py", line 259, in Show_Main
Form.close()
NameError: name 'Info' is not defined
这是每个.py文件的部分代码:
M.py
from Description import Ui_Form
class Main_Form(object):
def setupUi(self, Form):
Form.setObjectName("Main")
.
.
.
def Show_Description(self):
self.DWindow = QtWidgets.QWidget()
self.ui = Ui_Form()
self.ui.setupUi2(self.DWindow)
self.DWindow.show()
Form.close()
descrpition.py
class Ui_Form(object):
def setupUi2(self, Info):
Info.setObjectName("info")
def Show_Main(self):
from M import Main_Form
self.DWindow = QtWidgets.QWidget()
self.ui = Main_Form()
self.ui.setupUi(self.DWindow)
self.DWindow.show()
Info.close()
不要问我为什么要在Show_Main方法中导入Main_Form而不是它,否则会返回错误。
答案 0 :(得分:0)
您的错误消息是说它无法识别变量Info
。从您上传的代码中,变量Info
通过函数Ui_Form
提供给类setupUi2
。但是创建错误的函数Show_main
不共享赋给Info
的变量setupUi2
,因为它不是实例变量。我想你可以尝试这样的事情:
def setupUi2(self,Info):
self.Info = Info
self.Info.setObjectName("info")
def Show_Main(self):
~~~
self.Info.close()