在此代码中直接运行第二个窗口,但是当我单击第一个窗口中的按钮然后显示第二个窗口时我想要
第一个窗口类文件
import sys
from PyQt5.QtWidgets import*
from PyQt5.QtGui import*
from PyQt5.QtCore import*
from secondwindow import secondwindow
class firstwindow(QMainWindow):
def __init__(self, parent=None):
QWidget.__init__(self,parent)
QTimer.singleShot(10000,self.newwindow)
'''super(firstwindow,self).__init__()
self.setWindowTitle("First Window")
self.button = QPushButton("ClickMe")
widget = QWidget()
layout = QVBoxLayout(widget)
self.button.clicked.connect(self.newwindow)
layout.addWidget(self.button)
self.resize(800, 600)
self.setLayout(layout)
self.setCentralWidget(widget)'''
def newwindow(self):
self.newpage = secondwindow(self)
self.newpage.show()
class main():
app = QApplication([])
window = firstwindow()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
第二窗口类文件
import sys
from PyQt5.QtWidgets import*
from PyQt5.QtGui import*
from PyQt5.QtCore import*
class secondwindow(QMainWindow):
def setupUI(self):
super(secondwindow,self).__init__()
self.setWindowTitle("Second Window")
self.show()
class main():
app = QApplication([])
window = secondwindow()
window.setupUI()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
[不确定是否算作解决方案,我相信两个窗口都从一开始就存在,但是第二个窗口一直被隐藏,直到按下按钮为止(又名无子父级关系,两个MainWindows都与示例中的示例相同:]]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 8 13:22:25 2020
@author: Pietro
"""
import sys
from PyQt5 import QtWidgets
from secondwindow import secondwindow
class firstwindow(QtWidgets.QMainWindow):
def __init__(self):
super(firstwindow,self).__init__()
self.setWindowTitle("First Window")
self.resize(800, 200)
self.button = QtWidgets.QPushButton("ClickMe",self)
self.button.clicked.connect(self.newwindow)
self.newpage = secondwindow()
def newwindow(self):
self.newpage.show()
class main():
app = QtWidgets.QApplication(sys.argv)
window = firstwindow()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
secondwindow.py:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 8 13:25:20 2020
@author: Pietro
"""
import sys
from PyQt5 import QtWidgets
class secondwindow(QtWidgets.QMainWindow):
def __init__(self):
super(secondwindow,self).__init__()
self.setWindowTitle("Second Window")
self.hide()