Skip to main content
 首页 » 编程设计

python之如何在 Gtk TextView 中添加新行

2025年05月04日1852php

这是我的问题,我无法在其他地方找到答案。我想在 Gtk TextView (python3) 中显示一些文本,每段文本后都有一个新行。当我使用“\n”时,它显示“\n”而不是实际添加新行。有什么办法可以解决这个问题吗?

这应该是我的问题的可重现版本,然后是我的输出...(ps。我不是一个有经验的程序员)

import gi 
gi.require_version("Gtk", "3.0") 
from gi.repository import Gtk 
 
records = () 
tv = Gtk.TextView() 
 
records += ("a", "\n", "b", "\n", "c", "\n") 
tb = tv.get_buffer() 
tb.set_text(str(records)) 
 
sw = Gtk.ScrolledWindow() 
sw.set_size_request(300,400) 
sw.add(tv) 
 
w = Gtk.Window() 
w.add(sw) 
w.show_all() 
 
Gtk.main() 

Gtk 窗口中的当前输出:

('a','\n','b', '\n', 'c') 

在 Gtk 窗口中的期望输出:

 'a' 
 'b' 
 'c' 

请您参考如下方法:

添加到 textbuffer,无需先读取它,可以使用 iters(它有点指向缓冲区的内容)来完成。例如,您可以在缓冲区的末尾添加 asking for an iter at the end :

    bff = Gtk.TextBuffer() 
    view = Gtk.TextView(buffer = bff) 
    bff.set_text("This is the beginning\n") 
 
    iter = bff.get_end_iter() 
    bff.insert(iter, "And this is a newly inserted line\n") 

您还可以插入: