我正在阅读有关 Model/View programming 的内容设计模式,但我不明白如何定义模型。我的模型应该继承自 QAbstractItemModel?如果是,我认为它非常有限,因为我的模型类无法从另一个模型类继承。
最佳答案
C++ 具有多重继承,因此从技术上讲,您的模型可以派生自 Qt 模型基类和其他内容。
话虽这么说,多重继承相当棘手(无论如何对我来说),组合更容易正确。
将 ORM 模型类与 Qt 的“合并”的一种方法是创建一个 Qt 模型类,其中包含一个(或多个)ORM 模型作为成员。 Qt 模型本质上会将所有请求代理到 ORM 模型。 Qt 模型只是一个“适配器”。这使您的 ORM 代码独立于 GUI 工具包,这通常是好的。
请务必查看Model subclassing reference对于 Qt 方面的事情。
关于qt - Qt Model/View 编程设计模式是否受到限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359638/