C++ Qt中的窗口模板(或基本上是面向对象的窗口)

C++ Qt中的窗口模板(或基本上是面向对象的窗口),c++,qt,qt4,qt-creator,C++,Qt,Qt4,Qt Creator,所以,我有一堆我想创建的窗口,每一个都不同,但是有相似的属性。为了简单起见,让我们假设我希望在底部有一行按钮(每个窗口的实际按钮不同,但它们的配置应该相同)。然后在窗口的上半部分,我希望它非常基于打开的窗口 简言之,我希望有一个窗口A,它有一个底部有按钮的窗口模板。然后是按钮B,它实例化了按钮,在顶部有自己的东西,窗口C有自己的一组按钮,在顶部有东西,这与B完全不同 在Qt中有什么方法可以做到这一点吗?也可以只使用一个窗口A,并在适当时在B和C中的配置之间来回更改吗?是的,可以使用Qt完成。您可

所以,我有一堆我想创建的窗口,每一个都不同,但是有相似的属性。为了简单起见,让我们假设我希望在底部有一行按钮(每个窗口的实际按钮不同,但它们的配置应该相同)。然后在窗口的上半部分,我希望它非常基于打开的窗口

简言之,我希望有一个窗口A,它有一个底部有按钮的窗口模板。然后是按钮B,它实例化了按钮,在顶部有自己的东西,窗口C有自己的一组按钮,在顶部有东西,这与B完全不同


在Qt中有什么方法可以做到这一点吗?也可以只使用一个窗口A,并在适当时在B和C中的配置之间来回更改吗?

是的,可以使用Qt完成。您可以动态创建小部件。将每个窗口设计为一个单独的QWidget,其中包含其他小部件(例如按钮)。然后,主窗口将包含一个简单的boxlayout和一个动态创建的窗口小部件。当所需的窗口类型更改时,删除当前窗口小部件并创建另一个窗口小部件


另一个选择是将windows A、B和C所需的所有小部件放在同一个窗口中。当需要窗口A时,显示属于它的窗口小部件并隐藏其他窗口小部件。

事实上,如果您了解QTab,那么它的工作方式与您描述的完全相同,只是它在顶部添加了一组选项卡,这在这里可能不需要

但无论如何。。。创建一个QMainWindow,在其中创建3个小部件(a、B和C)。使用A时隐藏B和C。然后使用B时隐藏A和C,等等

这与Roku的建议类似,但他有一个稍微不同的树组织,因为他只显示一个窗口,并在较大的窗口中更改小部件。有3个小部件覆盖整个窗口并在它们之间切换可能更容易管理,因为在从一个窗口切换到另一个窗口时,实际上只需更改其中的2个