繁体   English   中英

在PyQt5中打开一个窗口并关闭一个窗口

[英]Open a window and close a window in PyQt5

我正在尝试从欢迎屏幕中使用UI窗口加载新类,并同时关闭欢迎屏幕。 当我单击该按钮以打开新窗口时,它会很好地打开,但是我只想关闭该动作事件的第一个窗口。

我曾尝试.hide() .terminate() .destroy()窗口仍然停留。

这是相关代码:

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()                
        #self.email_blast_widget = EmailBlast()
        #self.setCentralWidget(self.email_blast_widget)
        self.welcome = OpeningWindow()
        self.setCentralWidget(self.welcome)        
        bar = self.menuBar()
        file_file = bar.addMenu('File')         
        file_edit = bar.addMenu('Edit')

    def load_email(self):
        self.mail = EmailBlast()        
        self.mail.show()
        self.welcome = OpeningWindow()
        self.destroy()

class OpeningWindow(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.welcome = QtWidgets.QLabel("Welcome To Zach's \nEmail Blast Widget")
        self.email_button = QtWidgets.QPushButton("Email")
        self.csv_button = QtWidgets.QPushButton("CSVs")
        self.exit_button = QtWidgets.QPushButton("Exit")

        self.init_ui()

 def init_ui(self):
    # set layout to place widgets
    self.email_button.clicked.connect(self.load_email)
    self.csv_button.clicked.connect(self.load_csv)
    #self.exit_button.clicked.connect(self.exit)
    self.exit_button.clicked.connect(QtWidgets.qApp.quit)


class EmailBlast(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()     
        # create widgets
self.exit_button.clicked.connect(QtWidgets.qApp.quit)

该解决方案可以满足我的目的,但是,如果您尝试关闭窗口而不关闭应用程序,则将无法使用。 使用self.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM