вопрос про TextBuffer, gtkmm

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by csrss, 5 Jun 2009.

  1. csrss

    csrss Member

    Joined:
    13 Apr 2009
    Messages:
    38
    Likes Received:
    38
    Reputations:
    4
    Здрасте. Если кто знает помогите пожалста. Короче недавно занялса изучением gtkmm [c++] и вот такая проблема: как добавлять в окно проги текст, один за другим? Ну тоесть вот банальный пример того же в перле:

    Code:
    $buffer->insert ($buffer->get_end_iter, "test\n");
    $buffer содержит текст который хотим показать / который уже находитса в окне
    $buffer->get_end_iter - т.е. тут прога автоматом находит text iterator который в нашем случае является концом уже имеющегося текста.

    И можно терь вызывать эту функцию скока угодно и текст в окошко проги будет добавлятся всё время. А щас, то что я уже пробовал (безрезультатно) в gtkmm (тут тока код с которым не могу разобратса):

    Code:
    using namespace Gtk;
    
    class MainClass : public Window{
    public:
      	MainClass();
      	virtual ~MainClass();
    
    protected:
    	Glib::RefPtr<Gtk::TextBuffer::Tag> refTagMatch;
    	Glib::RefPtr<Gtk::TextBuffer::TagTable> refTagTable;
    	Glib::RefPtr<Gtk::TextBuffer> refBuffer, buff;
    	Glib::RefPtr<Gtk::TextBuffer::Mark> refMark;
    	Glib::RefPtr<Gtk::TextMark> m_Mark;
    	TextIter m_iter;
    };
    
    MainClass::MainClass()
    {
    
    	refTagMatch = Gtk::TextBuffer::Tag::create();
    	refTagMatch->property_background() = "black";
    	refTagTable = Gtk::TextBuffer::TagTable::create();
    	refBuffer = Gtk::TextBuffer::create(refTagTable);
    //	refMark = refBuffer->get_buffer();
    m_iter = refBuffer->end();
    	refBuffer->set_text("test\n");
    	buff = m_TextView.get_buffer();
    //	m_iter = buff->get_iter_at_line(1);
    	buff->insert(m_iter, "shit\n");
    
    	m_TextView.set_buffer(refBuffer);
    //	m_TextView.scroll_to(m_iter, true);
    	m_TextView.set_buffer(buff);
    
    }
    
    Всё это так сказать тупые попытки, так как документация gtkmm ну просто "чудесна и прекрасна хоть убейся башкой ап стенку" как для меня. Единственное, что получается - это показать один текст, потом прога его убирает и показывает другой. =/