这是我的问题,我无法在其他地方找到答案。我想在 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")
您还可以插入:
- 开头 (
get_start_iter), - 在文本中的某个偏移量(以字符为单位)(
get_iter_at_offset), - 在某一行(
get_iter_at_line), - 在您在文本中留下的某些“标记”处(
get_iter_at_mark)等...
