C ++ GTKmm — Как мне получить содержимое моего TextView (TextBuffer)

Я изучаю GTKmm (C ++) в Linux.

Я хочу получить содержимое TextView одним нажатием кнопки.

Код std::cout << m_textBuffer->get_text(); ничего не выводит на консоль, и я не могу найти достаточно объяснений на официальном сайте.

Кажется, что мне нужно использовать итератор, но пытаясь сделать это с m_textBuffer->start() в функции get_text() говорит мне, что start () не является функцией TextBuffer, а является эквивалентом end ().

Консоль выдает несколько предупреждений, которые могут быть связаны:

Gtk-CRITICAL **: gtk_text_buffer_get_iter_at_mark: утверждение ‘GTK_IS_TEXT_MARK (mark)’ не выполнено
Gtk-CRITICAL **: gtk_text_layout_get_line_yrange: утверждение ‘_gtk_text_iter_get_btree (iter) == _gtk_text_buffer_get_btree (layout-> buffer)’ не удалось

В конструкторе GUI у меня есть это:

m_txtQuestion.set_buffer(m_textBuffer);

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

0

Решение

(для gtkmm-2.4 и gtkmm-3.0):
Вместо того, чтобы пытаться установить буфер, просто используйте тот в TextView:

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

Затем для получения текста используйте:

m_txtQuestion.get_buffer()->get_text();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]