{"id":2777,"date":"2024-03-13T05:28:08","date_gmt":"2024-03-13T05:28:08","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/"},"modified":"2024-03-19T14:33:21","modified_gmt":"2024-03-19T14:33:21","slug":"how-to-handle-window-close-event-in-pyqt5","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/","title":{"rendered":"How to handle window close event in PyQt5?"},"content":{"rendered":"<p>In PyQt5, you can use the closeEvent method to handle window closing events. This method is called when the window is closed, allowing us to override it and implement custom closing behavior.<\/p>\n<p>The following is a simple example code that demonstrates how to show a confirmation dialog when closing a window.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> sys\r\n<span class=\"hljs-keyword\">from<\/span> PyQt5.QtWidgets <span class=\"hljs-keyword\">import<\/span> QApplication, QWidget, QMessageBox\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyWidget<\/span>(<span class=\"hljs-title class_ inherited__\">QWidget<\/span>):\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">__init__<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        <span class=\"hljs-built_in\">super<\/span>().__init__()\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">closeEvent<\/span>(<span class=\"hljs-params\">self, event<\/span>):\r\n        reply = QMessageBox.question(self, <span class=\"hljs-string\">'Message'<\/span>, <span class=\"hljs-string\">'Are you sure to quit?'<\/span>, QMessageBox.Yes | QMessageBox.No, QMessageBox.No)\r\n\r\n        <span class=\"hljs-keyword\">if<\/span> reply == QMessageBox.Yes:\r\n            event.accept()\r\n        <span class=\"hljs-keyword\">else<\/span>:\r\n            event.ignore()\r\n\r\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">'__main__'<\/span>:\r\n    app = QApplication(sys.argv)\r\n    widget = MyWidget()\r\n    widget.show()\r\n    sys.exit(app.exec_())\r\n<\/code><\/pre>\n<p>In the code above, we defined a custom window class MyWidget that inherits from QWidget and overridden the closeEvent method. In this method, we displayed a confirmation dialog to ask the user if they are sure they want to close the window. Depending on the user&#8217;s choice, we can call event.accept() to accept the close event, or event.ignore() to disregard the close event.<\/p>\n<p>By overriding the closeEvent method, we can achieve various customized closing behaviors, such as displaying warning messages, saving data, etc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PyQt5, you can use the closeEvent method to handle window closing events. This method is called when the window is closed, allowing us to override it and implement custom closing behavior. The following is a simple example code that demonstrates how to show a confirmation dialog when closing a window. import sys from PyQt5.QtWidgets [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-2777","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to handle window close event in PyQt5? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to handle window close event in PyQt5?\" \/>\n<meta property=\"og:description\" content=\"In PyQt5, you can use the closeEvent method to handle window closing events. This method is called when the window is closed, allowing us to override it and implement custom closing behavior. The following is a simple example code that demonstrates how to show a confirmation dialog when closing a window. import sys from PyQt5.QtWidgets [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-13T05:28:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-19T14:33:21+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"How to handle window close event in PyQt5?\",\"datePublished\":\"2024-03-13T05:28:08+00:00\",\"dateModified\":\"2024-03-19T14:33:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\"},\"wordCount\":145,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\",\"name\":\"How to handle window close event in PyQt5? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-13T05:28:08+00:00\",\"dateModified\":\"2024-03-19T14:33:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to handle window close event in PyQt5?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to handle window close event in PyQt5? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/","og_locale":"en_US","og_type":"article","og_title":"How to handle window close event in PyQt5?","og_description":"In PyQt5, you can use the closeEvent method to handle window closing events. This method is called when the window is closed, allowing us to override it and implement custom closing behavior. The following is a simple example code that demonstrates how to show a confirmation dialog when closing a window. import sys from PyQt5.QtWidgets [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-13T05:28:08+00:00","article_modified_time":"2024-03-19T14:33:21+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"How to handle window close event in PyQt5?","datePublished":"2024-03-13T05:28:08+00:00","dateModified":"2024-03-19T14:33:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/"},"wordCount":145,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/","name":"How to handle window close event in PyQt5? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-13T05:28:08+00:00","dateModified":"2024-03-19T14:33:21+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-handle-window-close-event-in-pyqt5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to handle window close event in PyQt5?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/2777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=2777"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/2777\/revisions"}],"predecessor-version":[{"id":35626,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/2777\/revisions\/35626"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=2777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=2777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=2777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}