之所以会进两次槽函数,是因为响应enter键一次,以及焦点离开时又一次,
不过两次进入时状态是不一样的,一次焦点还在QLineEdit上,一次已经不在了。
解决方法有:
1 通过判断焦点是否还在QLineEdit上加以区分
当回车按下时
editingFinished()槽第一次响应enter键,此时焦点在QLineEdit上,响应完失去焦点
第二次响应焦点离开事件,此时焦点已经不在QLineEdit上
故通过
if(ui->PswLineEdit->hasFocus())
{
//do sth
}
来判断是否失去焦点
From: https://blog.csdn.net/xiao123456bin/article/details/89371261