这应该在模型中还是在视图中?
Should this be in model or view?
我正在使用 QFileSystemModel 来填充我的树视图。用户可以右键单击树节点(文件夹)并执行操作(导出该文件夹下的所有特定数据文件)。
我在 on_tree_clicked() 下有这个导出,但我觉得这个操作属于模型。
如果我从 QFileSystemModel
派生自己的 QFileSystemModelWithExport
并添加导出功能会不会更好?从 on_tree_clicked() 开始,我就调用它?
还有其他方法可以很好地做到这一点吗?我希望我的 on_tree_clicked()
更短更简洁。
另外,我对 Qt 很陌生,我们如何像 QFileSystemModel
一样从 Qt 核心 class 派生?当我添加 class 时,它让我可以从 QObject、QWidget 等派生,但不能从任何模型派生 class。
您的 UI 应该只处理 UI 问题。即按钮按下、用户交互。
然后应该将其发送到实际执行代码的模型。
这样想,如果您导出到文件需要 5 秒,那是您不能使用 UI 的 5 秒,因为该线程正在写入文件。如果您拥有此模型,您将有机会对该特定事件进行多线程处理,并在执行操作时保持 UI 响应。
代码明智:
onTreeClicked()
可以很短。它可以执行以下操作:
myModel->writeDataFromNodeToFile();
& 然后在该函数中,您可以拥有写入文件所需的所有功能。 Open/Close/stream 数据等
我正在使用 QFileSystemModel 来填充我的树视图。用户可以右键单击树节点(文件夹)并执行操作(导出该文件夹下的所有特定数据文件)。
我在 on_tree_clicked() 下有这个导出,但我觉得这个操作属于模型。
如果我从 QFileSystemModel
派生自己的 QFileSystemModelWithExport
并添加导出功能会不会更好?从 on_tree_clicked() 开始,我就调用它?
还有其他方法可以很好地做到这一点吗?我希望我的 on_tree_clicked()
更短更简洁。
另外,我对 Qt 很陌生,我们如何像 QFileSystemModel
一样从 Qt 核心 class 派生?当我添加 class 时,它让我可以从 QObject、QWidget 等派生,但不能从任何模型派生 class。
您的 UI 应该只处理 UI 问题。即按钮按下、用户交互。
然后应该将其发送到实际执行代码的模型。
这样想,如果您导出到文件需要 5 秒,那是您不能使用 UI 的 5 秒,因为该线程正在写入文件。如果您拥有此模型,您将有机会对该特定事件进行多线程处理,并在执行操作时保持 UI 响应。
代码明智:
onTreeClicked()
可以很短。它可以执行以下操作:
myModel->writeDataFromNodeToFile();
& 然后在该函数中,您可以拥有写入文件所需的所有功能。 Open/Close/stream 数据等