C++ GTKmm - 如何获取我的 TextView (TextBuffer) 的内容
C++ GTKmm - How do I get the content of my TextView (TextBuffer)
我正在 Linux 学习 GTKmm (C++)。
我想通过按下按钮获取 TextView 的内容。
代码std::cout << m_textBuffer->get_text();
没有向控制台输出任何东西,我在官方网站上找不到足够的解释。
看来我需要使用迭代器,但尝试在函数 get_text()
中使用 m_textBuffer->start()
告诉我 start() 不是 TextBuffer 的函数,而且一个 end() 等价物。
控制台输出了一些可能相关的警告:
Gtk-CRITICAL **: gtk_text_buffer_get_iter_at_mark: assertion 'GTK_IS_TEXT_MARK (mark)' failed
Gtk-CRITICAL **: gtk_text_layout_get_line_yrange: assertion '_gtk_text_iter_get_btree (iter) == _gtk_text_buffer_get_btree (layout->buffer)' failed
在 GUI 构造函数中,我有这个:
m_txtQuestion.set_buffer(m_textBuffer);
m_textBuffer = Gtk::TextBuffer::create();
m_textBuffer->set_text("")
(对于 gtkmm-2.4 和 gtkmm-3.0):
与其尝试设置缓冲区,不如使用 TextView 中的缓冲区:
m_txtQuestion.get_buffer()->set_text("My text.");
然后获取文本使用:
m_txtQuestion.get_buffer()->get_text();
我正在 Linux 学习 GTKmm (C++)。
我想通过按下按钮获取 TextView 的内容。
代码std::cout << m_textBuffer->get_text();
没有向控制台输出任何东西,我在官方网站上找不到足够的解释。
看来我需要使用迭代器,但尝试在函数 get_text()
中使用 m_textBuffer->start()
告诉我 start() 不是 TextBuffer 的函数,而且一个 end() 等价物。
控制台输出了一些可能相关的警告:
Gtk-CRITICAL **: gtk_text_buffer_get_iter_at_mark: assertion 'GTK_IS_TEXT_MARK (mark)' failed Gtk-CRITICAL **: gtk_text_layout_get_line_yrange: assertion '_gtk_text_iter_get_btree (iter) == _gtk_text_buffer_get_btree (layout->buffer)' failed
在 GUI 构造函数中,我有这个:
m_txtQuestion.set_buffer(m_textBuffer);
m_textBuffer = Gtk::TextBuffer::create();
m_textBuffer->set_text("")
(对于 gtkmm-2.4 和 gtkmm-3.0):
与其尝试设置缓冲区,不如使用 TextView 中的缓冲区:
m_txtQuestion.get_buffer()->set_text("My text.");
然后获取文本使用:
m_txtQuestion.get_buffer()->get_text();