我需要在 Qt C++ 中实现方法,该方法在用户键入时计算 QTextEdit 中的单词数。此外,当用户键入多个空格时,不应将它们视为单词。我知道如何在已经输入的文本上执行此操作,但我需要一直更新总字数。你能帮我解决这个问题吗?
这就是我的做法,我结合了该线程上的一些答案。我注意到这个解决方案非常快,并且如果不需要,它不会浪费资源。它仅在您键入时检查部分文本,只有在粘贴文本时才会检查整个文本。我希望有人检查此代码并发布一些反馈。这是代码:
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)
| 归档时间: |
|
| 查看次数: |
4739 次 |
| 最近记录: |