当我在父类pyqt5中导入子类以自动运行第二类窗口时

问题描述 投票:0回答:1

在此代码中直接运行第二个窗口,但是当我单击第一个窗口中的按钮然后显示第二个窗口时我想要

第一个窗口类文件

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()
python pyqt pyqt5
1个回答
0
投票

[不确定是否算作解决方案,我相信两个窗口都从一开始就存在,但是第二个窗口一直被隐藏,直到按下按钮为止(又名无子父级关系,两个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()
© www.soinside.com 2019 - 2024. All rights reserved.