PyQt5如何临时隐藏主窗口而不关闭程序?
PyQt5点击按钮隐藏主窗口(不关闭程序)实现方法
你不需要额外做复杂配置,PyQt原生的hide()方法就可以实现需求:该方法只会隐藏窗口的视觉展示,不会终止QApplication的事件循环,程序会保持后台运行。
以下是完整可运行的实现示例:
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton from PyQt5.QtCore import Qt class MainWindow(QMainWindow): def __init__(self): super().__init__() # 去除标题栏逻辑(你已经实现的部分) self.setWindowFlag(Qt.FramelessWindowHint) self.resize(400, 300) # 创建隐藏触发按钮 self.hide_btn = QPushButton("隐藏窗口", self) self.hide_btn.move(150, 130) # 绑定点击信号到槽函数 self.hide_btn.clicked.connect(self.hide_window) def hide_window(self): # 仅隐藏窗口,不终止程序 self.hide() if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
注意事项
- 不要用
self.close()代替self.hide():close()会触发窗口的销毁事件,如果你没有修改过QApplication的quitOnLastWindowClosed属性,当唯一的顶层主窗口被关闭时程序会直接退出。 - 如果需要后续重新呼出窗口,你可以在其他逻辑(比如系统托盘点击、全局快捷键触发)中调用主窗口实例的
show()方法即可重新展示窗口。 - 如果你修改过主窗口的关闭事件逻辑,只要没有在
hide()相关流程中加入销毁窗口的代码,就不会影响隐藏逻辑的正常运行。
内容的提问来源于stack exchange,提问作者Bitchdragon
相关产品推荐
相关产品推荐

