Pyqt关闭并打开新窗口的实现

本文探讨了如何通过改变Python GUI编程中窗口关闭的方法,从self.close()和销毁新窗口,改为self.hide()和显示新窗口,以实现点击按钮关闭原窗口并平滑地打开新窗口的需求。
部署运行你感兴趣的模型镜像

为了实现点击按钮关闭窗口并打开新窗口,一开始对原窗口使用self.close()和new_window.show()的方式,新的窗口的GUI会被立即销毁。

#...
        self.pushButton.clicked.connect(self.close_dialog)

    def close_dialog(self):
        self.close()
        new_window = NewWindow()
        new_window.show()
#...

改用self.hide()和self.new_window.show()后实现需求。

#...
        self.pushButton.clicked.connect(self.close_dialog)

    def close_dialog(self):
        self.hide()
        self.new_window = NewWindow()
        self.new_window.show()
#...

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 实现点击按钮后打开新窗口关闭现有窗口 为了实现PyQt5 中点击按钮后打开新窗口关闭现有窗口的功能,可以在主窗口类中定义 `openNewWindow` 方法,在此方法内创建一个新的窗口实例,调用相应的方法来关闭窗口和展示新窗口。 以下是具体的实现方式: #### 主要逻辑说明 - 创建两个不同的窗口类:一个是主窗口 (`MainWindow`);一个是要打开新窗口 (`SecondWindow`) - 在主窗口中的按钮关联槽函数里编写用于切换窗口的代码 - 使用 `close()` 关闭当前窗口通过 `show()` 显示下一个窗口[^1] ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton class SecondWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('第二个窗口') self.setGeometry(300, 300, 280, 170) class MainWindow(QMainWindow): def __init__(self): super().__init__() btn = QPushButton("Open new window", self) btn.clicked.connect(self.open_new_window) # 设置主窗口属性 self.setWindowTitle('第一个窗口') self.setGeometry(100, 100, 280, 170) btn.move(90, 70) def open_new_window(self): self.new_win = SecondWindow() self.new_win.show() # 打开新窗口 self.close() # 关闭窗口 if __name__ == '__main__': app = QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) ``` 这段程序展示了如何利用 PythonPyQt5 库构建 GUI 应用来完成上述需求。当用户单击 "Open new window" 按钮时会触发 `open_new_window` 函数执行,从而达到目的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值