使用 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;
}
我想加载一个文件,然后显示它的内容。为此,我正在使用 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;
}