【发布时间】:2015-05-05 18:08:57
【问题描述】:
您认为在 Qt5 中实现类似对话框而不复制代码的最佳方式是什么?
这就是问题所在:有两个“略有不同”的数据结构,有许多共同的部分,实现了两个“略有不同”的 QDialog 来处理用户交互。
我们有两种结构:
class DataA {
public:
int one, two, three;
bool x,y;
SubdataA subA;
}
class DataB {
public:
int one, two, three;
bool x,y;
SubdataB subB;
}
SubdataX 是我们需要在 GUI 中处理的其他一些结构化数据。两个 QDialog 应该以相同的方式处理公共字段,而 SubdataX 必须由特定部分处理。代码还应该对数据结构进行一些操作,并提供输出文件。这部分很简单。
我的问题是,实现这一点的最佳策略是什么?目标是拥有优雅的代码,应该很容易维护并且尽可能地可读。框架是Qt,所以应该在UI文件中使用qdialog布局为Qt量身定制解决方案,因为gui布局太复杂,无法通过代码设计。
谢谢。
【问题讨论】:
-
能用多态吗?
-
这是我的第一个想法,但我发现很难管理祖先类(应该是抽象的)和 ui 文件。但这可能是一个解决方案。其他想法?
标签: c++ qt oop design-patterns ooad