使用 Gtkmm 在 GtkTextView 中加载完整文件

Loading the full file in GtkTextView using Gtkmm

我想加载一个文件,然后显示它的内容。为此,我正在使用 Gtkmm,我已经能够弹出文件选择器对话框。但是,选择文件后,仅显示文件中的最后一条语句。这是我正在做的事情:

case(RESPONSE_OK):
{
  std::string line,filename;
  std::ifstream fs;

  while(std::getline(fs, line)) {
     display->get_buffer()->setText(line);
  }
 fs.close();
break;

}

我是否需要 select 文本缓冲区限制?如果需要,我该怎么做?

set_text() 替换了 TextBuffer 的内容。请改用 insert 函数的任何变体。

它可能看起来像(您可能需要添加换行符)

case(RESPONSE_OK):
{
  std::string line,filename;
  std::ifstream fs;

  auto buffer = display->get_buffer();
  buffer->set_text("");
  auto insert_at = buffer->begin();
  while(std::getline(fs, line)) {
     insert_at = buffer->insert(insert_at, line);
  }
  break;
}