我正在尝试使用以下方法将多行数据插入到我的 TextView 中(大约 5-10 行):
Glib::RefPtr<Gtk::TextBuffer> buffer = txtView.get_buffer();
buffer->set_text("");
Gtk::TextBuffer::iterator iter;
iter = buffer->get_iter_at_offset(0);
iter = buffer->insert(iter, myString);
其中“myString”是一个格式良好的字符串(设置了结束行),它是从另一个函数传递的。“myString”的示例如下:
- 这是第一行
这是第二行
布拉布拉布拉
这是三号线
布拉布拉布拉
每个函数调用的字符串内容都不同。我的问题是我试图将不同的缓冲区应用于字符串的不同行。
例如,我想将蓝色背景色应用到第 2 行,将绿色应用到第 3 行,将红色应用到第 5 行。由于我将我的数据行作为整个字符串传递到函数中,如何做到这一点?逐行传递。(我无法逐行传递所有这些,因为我的程序是多线程的,这不好)。
我做过类似的事情,但这只会改变 TextView 的整个缓冲区,而不是特定的行。
buffer->property_background() = "red";
txtView->set_buffer(buffer);