QLineEdit没有提供限制字符最大输入个数的接口,所以如果需要的话,需要自己实现,以下是实现代码(以QLineEdit继承类中实现为例):
即当有字符输入的时候用槽函数
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);
}
首先要关联信号:
connect(this, SIGNAL(textChanged()), this,SLOT(CheckInputText()));
其次是实现槽函数:
void CheckInputText()
{
}