界面一个QWidget 里面有几个QLineEdit
先看几行代码
/*槽函数*/
void SeriesSettings::init()
{
connect(ui->editSetting1,SIGNAL(editingFinished()),this,SLOT(textFinished()));
}
/*按键事件处理*/
void SeriesSettings::keyPressEvent(QKeyEvent *key)
{
switch(key->key())
{
case Qt::Key_Enter: { OnButtonEnter(); setFlag == true ;break;}
}
}
void SeriesSettings::OnButtonEnter()
{
/*比较前后设置是否一致*/
.................
qDebug()<<setFlag<<"-------------------1-----------------";
}
void SeriesSettings::textFinished()
{
....................
qDebug()<<setFlag<<"-------------------2-----------------";
}
1.setFlag == true 下 其中一个QLineEdit被要求输入之后,按Enter Disabled掉,并保存QLineEdit中的数据 setFlag == false 。
2.setFlag == false下 在不是QLineEdit不是激活的状态,按Enter键,提交所有数据。
问题在于,在编辑好QLineEdit之后,按Enter 程序立先处理了两次1,再处理了一次2。也就是说,每个QLineEdit编辑好了之后都会提交一次。