pyqt5切换python版本_如何在两个PyQt5主窗口小部件之间切换

我在写一个程序,它有两个不同的部分,我们称之为sub1和sub2。当我最初运行我的程序时,sub1显示,我在后台加载sub2,但不显示它。我在sub1中有一个菜单操作,它允许您切换到sub2,sub2中有一个菜单操作允许您切换回sub1。我遇到的问题是当我试图从sub2切换回sub1时。从sub1到sub2工作正常;sub1被隐藏,sub2被显示。但是,当再次尝试显示sub1时,sub2不会隐藏。我对PyQt和Python都是新手,所以我还不知道所有的复杂性。所以,我使用的方法只是我通过反复试验得出的结论,决不需要这样。下面是简化代码。在#mass module

class MASS(PyQt5.QtWidgets.QMainWindow, massUi.Ui_MainWindow):

def __init__(self):

super(MASS, self).__init__()

self.actionSwitchToCompEval.triggered.connect(self.switchToCompEval)

def switchToCompEval(self):

massForm = main.massForm

massForm.hide()

compForm = main.compForm

compForm.show()

def showMass(self):

main(1)

def main(initiate=None):

if initiate == None:

main.app = PyQt5.QtWidgets.QApplication(sys.argv)

main.massForm = MASS()

main.compForm = CompEval.CompEval()

main.massForm.show()

main.app.exec_()

elif initiate == 1:

main.massForm = MASS()

main.compForm = CompEval.CompEval()

main.compForm.hide()

main.massForm.show()

elif initiate == 2:

pass

if __name__ == '__main__':

main()

#comp module

class CompEval(PyQt5.QtWidgets.QMainWindow, compEvalUi.Ui_MainWindow):

def __init__(self):

super(CompEval, self).__init__()

self.actionSwitchToMASS.triggered.connect(self.switchToMass)

def switchToMass(self):

mass.MASS().showMass()

def main():

form = CompEval()

form.show()

在switchToCompEval函数中,引用主.massForm以及主控形状变量,但是当我试图从sub2(comp)回到sub1(mass)时,我得到一个错误:函数不包含这个变量,这对我来说很奇怪。我知道,目前我的设置有几个方面是奇怪的,远远不是理想的,所以任何建议都将不胜感激。谢谢。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值