Qt C++ QTextEdit 打字时计算字数

Ale*_*len 5 c++ qt

我需要在 Qt C++ 中实现方法,该方法在用户键入时计算 QTextEdit 中的单词数。此外,当用户键入多个空格时,不应将它们视为单词。我知道如何在已经输入的文本上执行此操作,但我需要一直更新总字数。你能帮我解决这个问题吗?

Ale*_*len 0

这就是我的做法,我结合了该线程上的一些答案。我注意到这个解决方案非常快,并且如果不需要,它不会浪费资源。它仅在您键入时检查部分文本,只有在粘贴文本时才会检查整个文本。我希望有人检查此代码并发布一些反馈。这是代码:

size = 0;
counter = 0;
start = 0;
end = 0;
void MainWindow::count()
{
    text = ui->textEdit->toPlainText();
    if(text.length()-size == 1){
    if(text.length() == 1){
    if(!text.at(0).isSpace()){
        counter++;
        ui->label_2->setText(QString::number(counter));
    }}

    if(text.length()>2){
    start = text.length()-1;
    end = text.length();
    if(text.at(start-1).isSpace() && !text.at(end-1).isSpace()){
        counter++;
        ui->label_2->setText(QString::number(counter));
    }}}
    else if(text.length()-size > 1){
    counter = 0;
    if(!text.at(0).isSpace()) counter++;
        for(int i = 1; i<text.length();i++){
            if(!text.at(i).isSpace() && text.at(i-1).isSpace())
                counter++;

        }
        ui->label_2->setText(QString::number(counter));
    }
    size = text.length();
}
Run Code Online (Sandbox Code Playgroud)