0

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

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

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

}

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

4

1 回答 1

1

set_text()替换TextBuffer. 请改用插入函数的任何变体。

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

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;
}
于 2016-11-30T15:04:12.470 回答