QLineEdit 设置最大输入字符个数

QLineEdit没有提供限制字符最大输入个数的接口,所以如果需要的话,需要自己实现,以下是实现代码(以QLineEdit继承类中实现为例):

首先要关联信号:
connect(this, SIGNAL(textChanged()), this,SLOT(CheckInputText()));
    即当有字符输入的时候用槽函数 CheckInputText()来核查是否超过了最大个数,如果超出了,则删掉刚刚输入的字符。

其次是实现槽函数:
void CheckInputText()
{
    QString currText =this->text();
    int currCount= currText.count();

   if(currCount >MAXINPUTSIZE)
    {
       int position =this->textCursor().position();
       QTextCursor textCursor =this->textCursor(); // 此处需加this
      currText.remove(position-(currCount-MAXINPUTSIZE),currCount-MAXINPUTSIZE);
      this->setText(currText  );
      textCursor.setPosition(position-(currCount-MAXINPUTSIZE));
      this->setTextCursor(textCursor);
    }
}

你可能感兴趣的:(QLineEdit 设置最大输入字符个数)