C++ 类似于QT模型/视图的日志查看器

C++ 类似于QT模型/视图的日志查看器,c++,qt,textview,model-view,C++,Qt,Textview,Model View,我有一个监控程序,它运行另一个长过程(可能需要几天)。该过程会生成大量日志信息。此日志信息无法存储在内存中,因此我将其重定向到日志文件中。问题是监控程序需要显示此日志。我不能使用需要将整个文本存储在内存中的小部件。我需要像这样的饮料 class TextView { void setModel(TextModel*) } class TextModel { int pageCount(); QString page(int i); Q_SIGNALS: voi

我有一个监控程序,它运行另一个长过程(可能需要几天)。该过程会生成大量日志信息。此日志信息无法存储在内存中,因此我将其重定向到日志文件中。问题是监控程序需要显示此日志。我不能使用需要将整个文本存储在内存中的小部件。我需要像这样的饮料

class TextView
{
    void setModel(TextModel*)
}

class TextModel
{
    int pageCount();
    QString page(int i);

Q_SIGNALS:
    void pageCountChanged(int cnt)
};
TextModel的实现将在每个请求的内存中加载页面


当然,我可以从头开始实现文本查看器小部件,但我没有足够的时间来实现它。有什么建议吗?

您可以使用
QListView
并从
QAbstractListModel
派生您的模型。您需要在模型中定义
rowCount
data
方法。

谢谢您的回答。其实我已经考虑过了。这里的一个小问题是视图请求来自模型单行。理想情况下,如果视图请求一个页面,则它将被删除。当然我会把它作为一个备份解决方案。你可以从文件中读取页面并将它们缓存在模型中。在
data()
中,可以从已缓存的页面返回行。无论如何,如果您的模型是基于文件的,则需要实现一些缓存,因为视图的缓存很弱,并且视图有时会生成许多
data()
调用。