gpt4 book ai didi

c++ - 这应该在模型中还是在 View 中?

转载 作者:行者123 更新时间:2023-11-30 03:56:42 25 4
gpt4 key购买 nike

我正在使用 QFileSystemModel 来填充我的 TreeView 。用户可以右键单击树节点(文件夹)并执行操作(导出该文件夹下的所有特定数据文件)。

我在 on_tree_clicked() 下有这个导出,但我觉得这个操作属于模型。

如果我从 QFileSystemModel 派生自己的 QFileSystemModelWithExport 并添加导出功能,会不会更好?从 on_tree_clicked(),然后我就调用它?

还有其他方法可以很好地做到这一点吗?我希望我的 on_tree_clicked() 更短更清晰。

此外,我对 Qt 还很陌生,我们如何从 Qt 核心类派生 QFileSystemModel?当我添加类时,它允许我派生自 QObject、QWidget 等,但不能派生自任何模型类。

最佳答案

您的用户界面应该只处理用户界面问题。即按钮按下、用户交互。

然后这应该将它发送到实际执行代码的模型。

这样想,如果您导出到文件需要 5 秒,那么这 5 秒您不能使用您的 UI,因为该线程正在写入文件。如果您拥有此模型,您就有机会对特定事件进行多线程处理,并在执行操作时保持 UI 响应。

代码明智:

onTreeClicked() 可以很短。它可以执行以下操作:

myModel->writeDataFromNodeToFile();

& 然后在该函数中,您可以拥有写入文件所需的所有功能。打开/关闭/流数据等

关于c++ - 这应该在模型中还是在 View 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348611/

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