0
我想從一個歡迎屏幕的UI窗口中加載一個新的類,同時關閉歡迎屏幕。當我點擊按鈕去打開新窗口時,它會打開,但我只想關閉動作事件的第一個窗口。打開一個窗口,關閉一個窗口在PyQt5
我試過.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.destroy()'更改爲'self.close()' – eyllanesc
我試過了你的代碼,它可以像你想的那樣工作,當第二個銷售被打開時,第一個銷售被關閉。 – eyllanesc
@ eyllanesc謝謝,我編輯是因爲我發現了這個問題。另外,爲了讓它退出,我可以回答我自己的問題。該函數是self.exit_button.clicked.connect(QtWidgets.qApp.quit) – EwokHugz