{"id":21780,"date":"2024-03-15T22:35:21","date_gmt":"2024-03-15T22:35:21","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/"},"modified":"2024-03-21T21:18:12","modified_gmt":"2024-03-21T21:18:12","slug":"what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/","title":{"rendered":"What is the method for transferring data to a subwindow in PyQt5?"},"content":{"rendered":"<p>In PyQt5, you can achieve data transfer between sub-windows by using the signal and slot mechanism. The specific steps are as follows:<\/p>\n<ol>\n<li>Create a signal class to pass data. Add a signal object in the subclass, for example: dataChanged = QtCore.pyqtSignal(str)<\/li>\n<li>When data needs to be passed in the child window, use a signal object to emit a signal, for example: self.dataChanged.emit(data)<\/li>\n<li>Connect the signal and slot of the child window in the main window. After creating the child window object, use the connect() method to connect the signal of the child window to the slot function of the main window, for example: subwindow.dataChanged.connect(self.handleDataChanged)<\/li>\n<li>Define a slot function in the main window to receive data passed from the child window, for example: def handleDataChanged(self, data):<\/li>\n<\/ol>\n<p>In this way, when the child window sends a signal, the slot function in the main window will be called, allowing the data to be retrieved and processed within the slot function.<\/p>\n<p>The complete example code is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">from<\/span> PyQt5 <span class=\"hljs-keyword\">import<\/span> QtCore, QtGui, QtWidgets\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">SubWindow<\/span>(QtWidgets.QMainWindow):\r\n    dataChanged = QtCore.pyqtSignal(<span class=\"hljs-built_in\">str<\/span>)\r\n    \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        self.button = QtWidgets.QPushButton(<span class=\"hljs-string\">\"\u4f20\u9012\u6570\u636e\"<\/span>, self)\r\n        self.button.clicked.connect(self.sendData)\r\n        \r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">sendData<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        data = <span class=\"hljs-string\">\"Hello World\"<\/span>\r\n        self.dataChanged.emit(data)\r\n        \r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MainWindow<\/span>(QtWidgets.QMainWindow):\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        self.subwindow = SubWindow()\r\n        self.subwindow.dataChanged.connect(self.handleDataChanged)\r\n        \r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">handleDataChanged<\/span>(<span class=\"hljs-params\">self, data<\/span>):\r\n        <span class=\"hljs-built_in\">print<\/span>(data)\r\n        \r\n\r\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">\"__main__\"<\/span>:\r\n    <span class=\"hljs-keyword\">import<\/span> sys\r\n    app = QtWidgets.QApplication(sys.argv)\r\n    window = MainWindow()\r\n    window.show()\r\n    sys.exit(app.exec_())\r\n<\/code><\/pre>\n<p>In this example, when the button in the child window is clicked, it will emit a dataChanged signal with the string &#8220;Hello World&#8221;. The slot function handleDataChanged in the main window will receive this signal and print out the passed data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PyQt5, you can achieve data transfer between sub-windows by using the signal and slot mechanism. The specific steps are as follows: Create a signal class to pass data. Add a signal object in the subclass, for example: dataChanged = QtCore.pyqtSignal(str) When data needs to be passed in the child window, use a signal object [&hellip;]<\/p>\n","protected":false},"author":11,"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-21780","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>What is the method for transferring data to a subwindow 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\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the method for transferring data to a subwindow in PyQt5?\" \/>\n<meta property=\"og:description\" content=\"In PyQt5, you can achieve data transfer between sub-windows by using the signal and slot mechanism. The specific steps are as follows: Create a signal class to pass data. Add a signal object in the subclass, for example: dataChanged = QtCore.pyqtSignal(str) When data needs to be passed in the child window, use a signal object [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-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-15T22:35:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T21:18:12+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\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=\"Olivia Parker\" \/>\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\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"What is the method for transferring data to a subwindow in PyQt5?\",\"datePublished\":\"2024-03-15T22:35:21+00:00\",\"dateModified\":\"2024-03-21T21:18:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/\"},\"wordCount\":226,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/\",\"name\":\"What is the method for transferring data to a subwindow in PyQt5? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T22:35:21+00:00\",\"dateModified\":\"2024-03-21T21:18:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the method for transferring data to a subwindow 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\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the method for transferring data to a subwindow 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\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/","og_locale":"en_US","og_type":"article","og_title":"What is the method for transferring data to a subwindow in PyQt5?","og_description":"In PyQt5, you can achieve data transfer between sub-windows by using the signal and slot mechanism. The specific steps are as follows: Create a signal class to pass data. Add a signal object in the subclass, for example: dataChanged = QtCore.pyqtSignal(str) When data needs to be passed in the child window, use a signal object [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T22:35:21+00:00","article_modified_time":"2024-03-21T21:18:12+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"What is the method for transferring data to a subwindow in PyQt5?","datePublished":"2024-03-15T22:35:21+00:00","dateModified":"2024-03-21T21:18:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/"},"wordCount":226,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/","name":"What is the method for transferring data to a subwindow in PyQt5? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T22:35:21+00:00","dateModified":"2024-03-21T21:18:12+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-transferring-data-to-a-subwindow-in-pyqt5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the method for transferring data to a subwindow 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\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21780","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=21780"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21780\/revisions"}],"predecessor-version":[{"id":55661,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21780\/revisions\/55661"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=21780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=21780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=21780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}