У меня странное поведение с одним из моих интерфейсов:
В моем интерфейсе у меня есть lineEdit Shift_x и кнопка pb_OK. Когда я делаю следующее, у меня другое поведение:
Изменить + ВОЗВРАТ:
Когда я редактирую значение в Shift_x и нажимаю return, выполняется слот on_lne_Shift_x_returnPressed (). Это то, что я ожидал. Но после этого слот on_pb_OK_clicked () также выполняется, что в итоге делает мою программу on_MoveCurve_ValueEdited выполненной дважды.
Изменить + ОК: Если я отредактирую значение в Shift_x и нажму «ОК», будет выполнен только слот on_pb_OK_clicked () (который затем запускается on_lne_Shift_x_returnPressed (); где происходит фактическое смещение)
Почему программа запускается on_lne_Shift_x_returnPressed () и on_pb_OK_clicked (), когда я нажимаю только кнопку возврата?
Спасибо за вашу помощь!
Это мой код:
2 слота:
void MoveSeries::on_lne_Shift_x_returnPressed()
{
const QString arg1= ui->lne_Shift_x->text();
shift_tracker = shift_tracker-arg1.toDouble();
emit x_returnPressed(arg1, ChartSeries);
}void MoveSeries::on_pb_OK_clicked()
{ on_lne_Shift_x_returnPressed(); }
И СВЯЗЬ в моем другом классе
connect( MOVE_SERIES , SIGNAL( x_returnPressed( QString , QVector < Series*> )),
this,SLOT( on_MoveCurve_ValueEdited ( QString,QVector < Series*>))) ;
Задача ещё не решена.
Других решений пока нет …