Qt文本使用固定数量的输入行进行编辑

bla*_*fox 5 c++ qt qtextedit qt5

我的Gui中有一个Qt"Text Edit"小部件,这个小部件用于记录某些内容.我这样添加每一行:

QString str;
str = ...
widget.textEdit_console->append(str);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,文本编辑高度将在每个新行之后越来越多地增加.我希望它在这种情况下就像一个终端,我的意思是在输入一些数字(我设置)之后,对于每个新行,文本编辑的第一行被删除以防止它太大!我应该在输入的每一条新线路上使用一个计数器,并在计数器到达顶部之后删除第一条线路,或者有更好的方法可以自动执行此操作

widget.textEdit_console->append(str);
Run Code Online (Sandbox Code Playgroud)

叫?

bla*_*fox 2

感谢cmannett85的建议,但出于某种原因我更喜欢“文本编辑”,我这样解决了我的问题:

void mainWindow::appendLog(const QString &str)
{
    LogLines++;
    if (LogLines > maxLogLines)
    {
        QTextCursor tc = widget.textEdit_console->textCursor();
        tc.movePosition(QTextCursor::Start);
        tc.select(QTextCursor::LineUnderCursor);
        tc.removeSelectedText(); // this remove whole first line but not that '\n'
        tc.deleteChar(); // this way the first line will completely being removed
        LogLines--;
    }
    widget.textEdit_console->append(str);
}
Run Code Online (Sandbox Code Playgroud)

我仍然不知道使用“文本编辑”时是否有更好的优化方法