Qt Multiple window 设计

Qt Multiple window design

我为较长的段落表示歉意,但这是我解释这一点的唯一方式。

基本问题: 我如何让多个 windows 共享一些 UI 功能,而不是将所有功能都集中在一个巨大的 class 中?

我的情况: 我对包含多个 windows 的应用程序的设计有疑问。 windows 将共享 UI 上的几个组件(日期和时间、电池等)。每个 window 也将拥有许多自己的 ui 功能。我最初的想法是将 windows 分开,这样 class 就不会那么大,并且 ui 文件更容易查看。但是,我发现我重复了共享 ui 功能的代码,因为我必须在每个 class 中实现它。此外,我被迫在 windows 之间建立许多连接,以确保在更改 windows 时处理某些事情。

可能的解决方案: 我读过 QStackedWidget 适合多个 windows,但所有内容都将在一个 class 中。当然,除非有一种方法可以处理主 ui 的子 class 中的某些 ui?不制作其他 ui 文件?

我同意使用 QStackedWidget。我通常使用以下思想设计我的应用程序:

  1. 每个 window/screen 都有自己的 class。
  2. 如果有重复的功能或代码,该部分将获得自己的 class(由每个 window classes 继承)。
  3. QStackedWidget 实现写在第一个 class 中,main.cpp 实例化对象并显示。
  4. 为了防止高内存使用率,我实现了包含 QStackedWidget 的 class 以动态创建 window classes 并删除它们(根据需要)。这是可选的,将取决于您的应用程序在您的设备上的性能。