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()
调用。