C ++ GTKmm - 如何获取TextView(TextBuffer)

时间:2016-05-07 09:00:00

标签: c++ textview gtkmm gtk-textbuffer

我在Linux上学习GTKmm(C ++)。

我想通过按下按钮获取TextView的内容。

代码std::cout << m_textBuffer->get_text();没有向控制台输出任何内容,我在官方网站上找不到足够的解释。

似乎我需要使用迭代器,但是在函数m_textBuffer->start()中使用get_text()尝试这样做会告诉我start()不是TextBuffer的函数,也不是结束()等效。

控制台输出一些可能相关的警告:

  

Gtk-CRITICAL **:gtk_text_buffer_get_iter_at_mark:断言'GTK_IS_TEXT_MARK(标记)'失败   Gtk-CRITICAL **:gtk_text_layout_get_line_yrange:断言'_gtk_text_iter_get_btree(iter)== _gtk_text_buffer_get_btree(layout-&gt; buffer)'失败

在GUI构造函数中,我有:

m_txtQuestion.set_buffer(m_textBuffer);

m_textBuffer = Gtk::TextBuffer::create();
m_textBuffer->set_text("")

1 个答案:

答案 0 :(得分:1)

(对于gtkmm-2.4和gtkmm-3.0):
而不是尝试设置缓冲区,只需使用TextView中的那个:

m_txtQuestion.get_buffer()->set_text("My text.");

然后使用文本:

m_txtQuestion.get_buffer()->get_text();