看见你的帖子 请教QT中QTextBrowser控件的用法 http://zhidao.baidu.com/question/291810412.html
1个回答
展开全部
其实实现起来也不是很复杂,主要是自append一段文字之后,记录下来这一次append的block的行数,既然你知道了位置,选择或删除的话就容易了,贴一段代码供参考:
static int lastBlockCount = 0; //最后一次文本总行数
int iCount = ui.chat_edit->document()->blockCount(); //当前插入之后的总行数
m_msgLines.push(iCount-lastBlockCount);//m_msgLines是一个队列,保存当前插入字符行数
lastBlockCount = iCount;
//超过阀值,删除10条
if (m_msgLines.size()>100)
{
int iLines = 0;
for (int i=0; i<10; i++)
{
iLines += m_msgLines.front();
m_msgLines.pop();
}
QTextCursor cs=ui.chat_edit->textCursor();
cs.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
cs.movePosition(QTextCursor::NextBlock,QTextCursor::KeepAnchor, iLines);
cs.removeSelectedText();
lastBlockCount -= iLines;
}
static int lastBlockCount = 0; //最后一次文本总行数
int iCount = ui.chat_edit->document()->blockCount(); //当前插入之后的总行数
m_msgLines.push(iCount-lastBlockCount);//m_msgLines是一个队列,保存当前插入字符行数
lastBlockCount = iCount;
//超过阀值,删除10条
if (m_msgLines.size()>100)
{
int iLines = 0;
for (int i=0; i<10; i++)
{
iLines += m_msgLines.front();
m_msgLines.pop();
}
QTextCursor cs=ui.chat_edit->textCursor();
cs.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
cs.movePosition(QTextCursor::NextBlock,QTextCursor::KeepAnchor, iLines);
cs.removeSelectedText();
lastBlockCount -= iLines;
}
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询