- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Gtk.TextView
来显示文本,如下所示:
我的目标是以编程方式将光标移动到下一个显示行的开头(不是缓冲行的开头,而是下一个TextView
中的第一个字符> 行)。
它使用 Gtk.WrapMode.WORD_CHAR
作为包装首选项。从 TextBuffer
访问时,移动 TextIter
对象工作正常:
/* This works as expected */
Gtk.TextIter start_iter;
buffer.get_start_iter (out start_iter);
或者直接使用 TextIter
时:
/* This also works as expected */
Gtk.TextIter iter;
...
iter.forward_line ();
但是当我想使用 TextView
移动 TextIter
时,例如:
Gtk.TextView text_view;
Gtk.TextIter iter;
...
text_view.forward_display_line (iter);
它不会移动迭代器,尽管 forward_display_line
返回 true
(表示迭代器已移动)。
这是我正在使用的代码(在从 TextView
派生的类中):
Gtk.TextIter line_end;
/* Initializing TextIter, placing it at the start of the buffer. */
this.buffer.get_start_iter (out line_end);
print ("Offset before forwarding: %i\n", line_end.get_offset ()); //returns 0
this.forward_display_line (line_end);
print ("Offset after forwarding: %i\n", line_end.get_offset ()); // still returns 0
为什么这段代码不起作用?由 TextBuffer
初始化的 TextIter
是否不适用于 TextView
方法?
最佳答案
在您的代码中调用Gtk.TextBuffer
forward_display_line()
“消耗” Gtk.TextIter 但不输出与该方法执行的更改相同的“Iter”的方法。两次调用 Gtk.TextIter
get_offset ()
应该返回相同的值。
相反,如果您使用 Gtk.TextIter
forward_line ()
,那么更改应该并且将会反射(reflect)在第二个打印中,例如:
Gtk.TextIter line_end;
/* Initializing TextIter, placing it at the start of the buffer. */
this.buffer.get_start_iter (out line_end);
print ("Offset before forwarding: %i\n", line_end.get_offset ()); //returns 0
line_end.forward_line ();
print ("Offset after forwarding: %i\n", line_end.get_offset ()); // should be different from 0 if buffer has some text
关于gtk - forward_display_line 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49025061/
我正在使用 Gtk.TextView 来显示文本,如下所示: 我的目标是以编程方式将光标移动到下一个显示行的开头(不是缓冲行的开头,而是下一个TextView中的第一个字符> 行)。 它使用 Gtk.
我是一名优秀的程序员,十分优秀!