我是蟒蛇世界的新手:P
我想使用PyQt5创建一个UI,只需点击一下按钮即可创建另一个窗口。
现在的问题是,一切都将通过Controller传递,并由Action执行。此操作将包含用于创建起始UI和下一个UI的代码。
请检查以下代码:
创建用户界面
def init_view(self,action,viewToCreate,cls):
if action=="start":
self.app = QtWidgets.QApplication(sys.argv)
self.window = QtWidgets.QWidget()
#cls IS THE CLASS FOR THE UI
#setupUI IS THE METHOD THAT CREATES THE UI
self.ui = cls.Ui_Class(controllerReceived)
self.ui.setupUi(self.window)
self.window.show()
sys.exit(self.app.exec_())
#HERE IS THE PROBLEM, IT SHOULD CREATE A SECOND UI
#WHILE CLOSING THE FIRST ONE
elif action=="change":
#I CAN CREATE A UI USING THE FOLLOWING CODE
#BUT ONLY IF IS CONTAINED IN THE STARTING UI
self.window = QtWidgets.QWidget()
ui = cls.Ui_Class()
ui.setupUi(self.window)
self.window.show()
答案 0 :(得分:0)
如果您想要的是两个单独的窗口,为什么不将每个窗口保存到单独的变量中,然后根据需要显示和隐藏,例如
self.window1 = MyWindow1()
self.window2 = MyWindow2()
...
if action == 'start':
self.window1.show()
self.window2.hide()
elif action == 'change':
self.window1.hide()
self.window2.show()