使用大量内存的 PyGtk 文本缓冲区想要清理它,但 iter 不起作用

PyGtk text buffer using to much memory want to clean it but then iter dont work

所以我只是在学习如何编码,我正在使用 pygtk 为我正在处理的 irc 机器人制作一个图形用户界面。机器人作为一些有趣的命令和东西,但我真正在这里的目的是我将聊天消息打印到文本缓冲区中,它使内存增加,这真的不是问题,除非你有大量消息或希望它成为一直在。但是考虑到这个问题,我希望机器人在文本缓冲区中达到 500 条消息(或 500 行)时,他会从文本缓冲区中删除前 250 条消息,这样可以降低内存使用率,并且仍然有大量消息可以发送读给使用图形用户界面的人听。

我的问题是我真的不知道该怎么做,如果我使用迭代器,它们将在删除 250 行时变得无用,因为我已经更改了文本缓冲区,而且我也尝试使用标记,但它确实看起来就像我知道如何使用它们一样...

HALP PLOX! xD

可以找到代码 here。 textbuffer 位于 run.py 内,名为 chatbuffer.

Kappa 解决了

我用这个来删除:

if chatbuffer.get_line_count() > 10:
    chatbuffer.delete(chatbuffer.get_iter_at_line(0), chatbuffer.get_iter_at_line(251))

而不是像这样定义中间人:

end_inter = chatbuffer.get_end_inter()

我刚开始使用:

chatbuffer.get_end_inter()

像这样:

chatbuffer.insert(chatbuffer.get_end_iter(), user + " > " + message + "\n")

编辑:嗯,我是个笨蛋,因为我在这之后遇到了一个错误,所以我创建了一个完整的另一个问题,因为我用 10 行测试了它并删除了 5 行,但忘记在最终代码中将其更改为 500。