我为长段落道歉,但这是我解释这一点的唯一方法。
基本问题: 如何拥有多个共享某些 UI 功能的窗口,而无需将它们全部放在一个巨大的类中?
我的情况: 我有一个关于包含多个窗口的应用程序的设计的问题。窗口将共享UI上的几个组件(日期和时间,电池等)。每个窗口还将具有许多自己的 UI 功能。我最初的想法是有单独的窗口,这样类就不会那么大,并且 ui 文件更容易查看。但是,我发现我重复了共享 UI 功能的代码,因为我必须在每个类中实现它。此外,我被迫在窗口之间建立许多连接,以确保在更改窗口时处理某些事情。
可能的解决方案: 我读过QStackedWidget适用于多个窗口,但所有内容都将在一个类中。当然,除非有办法处理主 UI 子类中的某些 UI?不制作其他 UI 文件?
我同意使用QStackedWidget
.我通常使用以下意识形态设计我的应用程序:
- 每个窗口/屏幕都有自己的类。
- 如果功能或代码重复,则该部分将获得自己的类(由每个窗口类继承)。
QStackedWidget
实现是在第一个类中编写的,main.cpp
实例化对象并显示该类。- 为了防止高内存使用率,我实现了包含动态创建窗口类并删除它们(根据需要)
QStackedWidget
的类。这是可选的,将基于应用程序在设备上的性能。