pyqt按钮关闭窗口_打开一个窗口,关闭一个窗口在PyQt5

在PyQt5应用程序中,从欢迎界面切换到新的窗口时,遇到问题无法正确关闭欢迎界面。尝试了.hide(), .terminate(), .destroy()等方法无效。问题解决方法是在加载新窗口的同时,使用.self.close()来关闭当前窗口。通过调整代码,实现点击按钮时成功地打开一个新窗口并关闭原始窗口,同时添加了退出应用的功能。" 82632270,7829218,C#连接Oracle数据库并传递工作空间,"['C#', '数据库开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想从一个欢迎屏幕的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

2017-08-16

EwokHugz

+0

将'self.destroy()'更改为'self.close()' –

+0

我试过了你的代码,它可以像你想的那样工作,当第二个销售被打开时,第一个销售被关闭。 –

+0

@ eyllanesc谢谢,我编辑是因为我发现了这个问题。另外,为了让它退出,我可以回答我自己的问题。该函数是self.exit_button.clicked.connect(QtWidgets.qApp.quit) –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值