{"id":18098,"date":"2024-03-15T16:14:39","date_gmt":"2024-03-15T16:14:39","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/"},"modified":"2024-03-21T12:29:43","modified_gmt":"2024-03-21T12:29:43","slug":"how-to-nest-a-child-window-in-a-main-window-in-qt","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/","title":{"rendered":"How to nest a child window in a main window in Qt?"},"content":{"rendered":"<p>In Qt, you can nest subclassed windows within the main window as child widgets. One way to implement this is:<\/p>\n<ol>\n<li>Widget for children<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MainWindow<\/span> : <span class=\"hljs-keyword\">public<\/span> QMainWindow\r\n{\r\n    Q_OBJECT\r\n\r\n<span class=\"hljs-keyword\">public<\/span>:\r\n    <span class=\"hljs-built_in\">MainWindow<\/span>(QWidget *parent = <span class=\"hljs-literal\">nullptr<\/span>);\r\n\r\n<span class=\"hljs-keyword\">private<\/span>:\r\n    ChildWidget *childWidget;\r\n};\r\n<\/code><\/pre>\n<ol>\n<li>In the constructor of the main window, create an instance of the child window and set its parent object as the main window.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>MainWindow::<span class=\"hljs-built_in\">MainWindow<\/span>(QWidget *parent)\r\n    : <span class=\"hljs-built_in\">QMainWindow<\/span>(parent)\r\n{\r\n    childWidget = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-built_in\">ChildWidget<\/span>(<span class=\"hljs-keyword\">this<\/span>);\r\n    \r\n    <span class=\"hljs-comment\">\/\/ \u5176\u4ed6\u4e3b\u7a97\u53e3\u7684\u8bbe\u7f6e\u548c\u5e03\u5c40...<\/span>\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Add a sub-window to the layout of the main window.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u521b\u5efa\u4e00\u4e2a\u4e3b\u7a97\u53e3\u7684\u4e2d\u5fc3\u90e8\u4ef6<\/span>\r\nQWidget *centralWidget = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-built_in\">QWidget<\/span>(<span class=\"hljs-keyword\">this<\/span>);\r\n<span class=\"hljs-built_in\">setCentralWidget<\/span>(centralWidget);\r\n\r\n<span class=\"hljs-comment\">\/\/ \u521b\u5efa\u4e00\u4e2a\u5782\u76f4\u5e03\u5c40\u7ba1\u7406\u5668<\/span>\r\nQVBoxLayout *layout = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-built_in\">QVBoxLayout<\/span>(centralWidget);\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5c06\u5b50\u7a97\u53e3\u6dfb\u52a0\u5230\u5e03\u5c40\u4e2d<\/span>\r\nlayout-&gt;<span class=\"hljs-built_in\">addWidget<\/span>(childWidget);\r\n<\/code><\/pre>\n<p>By following the above steps, the child window has been successfully embedded into the main window. You can now access and operate the child window within other components of the main window.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Qt, you can nest subclassed windows within the main window as child widgets. One way to implement this is: Widget for children class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); private: ChildWidget *childWidget; }; In the constructor of the main window, create an instance of the child window and set [&hellip;]<\/p>\n","protected":false},"author":9,"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-18098","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 nest a child window in a main window in Qt? - 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-nest-a-child-window-in-a-main-window-in-qt\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to nest a child window in a main window in Qt?\" \/>\n<meta property=\"og:description\" content=\"In Qt, you can nest subclassed windows within the main window as child widgets. One way to implement this is: Widget for children class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); private: ChildWidget *childWidget; }; In the constructor of the main window, create an instance of the child window and set [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/\" \/>\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-15T16:14:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:29:43+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\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=\"Ava Mitchell\" \/>\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-nest-a-child-window-in-a-main-window-in-qt\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"How to nest a child window in a main window in Qt?\",\"datePublished\":\"2024-03-15T16:14:39+00:00\",\"dateModified\":\"2024-03-21T12:29:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/\"},\"wordCount\":100,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/\",\"name\":\"How to nest a child window in a main window in Qt? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:14:39+00:00\",\"dateModified\":\"2024-03-21T12:29:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to nest a child window in a main window in Qt?\"}]},{\"@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\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to nest a child window in a main window in Qt? - 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-nest-a-child-window-in-a-main-window-in-qt\/","og_locale":"en_US","og_type":"article","og_title":"How to nest a child window in a main window in Qt?","og_description":"In Qt, you can nest subclassed windows within the main window as child widgets. One way to implement this is: Widget for children class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); private: ChildWidget *childWidget; }; In the constructor of the main window, create an instance of the child window and set [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:14:39+00:00","article_modified_time":"2024-03-21T12:29:43+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"How to nest a child window in a main window in Qt?","datePublished":"2024-03-15T16:14:39+00:00","dateModified":"2024-03-21T12:29:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/"},"wordCount":100,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/","name":"How to nest a child window in a main window in Qt? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:14:39+00:00","dateModified":"2024-03-21T12:29:43+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-nest-a-child-window-in-a-main-window-in-qt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to nest a child window in a main window in Qt?"}]},{"@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\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18098","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18098"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18098\/revisions"}],"predecessor-version":[{"id":51755,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18098\/revisions\/51755"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}