gpt4 book ai didi

Qt 模型/ View 架构 - 如何处理更复杂的模型

转载 作者:行者123 更新时间:2023-12-01 22:30:03 25 4
gpt4 key购买 nike

Qt 中的模型是否应该或多或少符合模型,因此最终由列表、表格或树表示?如果您的模型非常复杂并且无法用列表、表格或树表示怎么办?

如果是这样的话,我认为模型除了数据什么也没有;类似于 XML 文件或电子表格的东西。

示例:如果相关应用程序中的模型更复杂(例如汽车)怎么办?我假设汽车模型将包含有关汽车的所有数据和业务规则。整个汽车将由发动机、车轮、车架和许多其他不同的部件共同组成。每个组件都有自己独特的一组行为:框架有颜色,引擎有温度,立体声音响有音量设置,等等。每个组件也会有行为:如果踩下 throttle 踏板,车轮就会旋转,发动机就会升温。显然,QStringListModel 或其他一些内置的简化模型无法正确解决汽车中的所有复杂性。

最佳答案

模型不是数据,而是一组回调。事实上,模型后面不需要保留真实数据。它更像是一个被查询的服务器。

这就像这之间的区别:

int data[5] = { 0, 2, 4, 6, 8 };
void viewer(int *data, int n) {
for (int ii = 0; ii < n; ii++)
printf("%d, ", data[ii]);
}
int main() {
viewer(data, 5);
}

还有这个:

int model(int index) {
return index * 2;
}
typedef int (*model_function)(int);
void viewer(model_function model, int n) {
for (int ii = 0; ii < n; ii++)
printf("%d, ", model(ii));
}
int main() {
viewer(model, 5);
}

两者都会为您提供0, 2, 4, 6, 8,但模型实际上并不需要数组来提供相同的值。

关于Qt 模型/ View 架构 - 如何处理更复杂的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13435119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com