【问题标题】:QT Model/View like Log Viewer类似日志查看器的 QT 模型/视图
【发布时间】:2013-06-20 13:55:00
【问题描述】:

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

class TextView
{
    void setModel(TextModel*)
}

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

Q_SIGNALS:
    void pageCountChanged(int cnt)
};

TextModel 的实现将根据请求将页面加载到内存中。

当然,我可以从头开始实现 Text Viewer 小部件,但我没有足够的时间去做。有什么建议吗?

【问题讨论】:

    标签: c++ qt textview model-view


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。其实我已经考虑过了。这里的一个小问题是从模型单行请求视图。理想情况下,如果视图会请求一个页面,那将是很好的。当然,我会将其保留为备用解决方案。
    • 您可以从文件中读取页面并将它们缓存在模型中。在data() 中,您可以从已缓存的页面返回行。无论如何,如果您的模型是基于文件的,您需要实现一些缓存,因为视图的缓存很弱,并且视图有时会生成许多 data() 调用。
    猜你喜欢
    • 2018-07-16
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    相关资源
    最近更新 更多