我有一个巨大的文本缓冲区,其中每一行都是通过库生成的,我希望我的QPlainTextEdit小部件能够以编程方式使用我的QScrollBar加载部分内容。
这就是我的想法:
这可能有效,但我发现推送' _back 向量中的每一行都非常慢,即使我保留空间也是如此它的元素。如果我将每一行追加到非常快的字符串,那么我需要用'\ n'字符拆分每一行。
我需要一种快速推送方式或能够快速在大文本缓冲区中获取n行的方法
答案 0 :(得分:0)
我有类似的问题,你可能正在寻找的是懒惰的实例化。获取文件中的总行数。由于您的文本框仅显示n行,当滚动条转到位置y(行y)时,则仅显示文件中的行[y,n + y]
如果您想要更多缓冲区,请考虑将数据分解为逻辑页面。即如果您的“页面”大小为200行,那么当您通过滚动条转到第300行时,您知道要加载第2页。
逐行读取文件始终是线性时间。但是程序的减速将是在内存中保存大量数据的结果。