Как из повторяющихся методов написать универсальную функцию?

Есть большая форма, на ней много полей, для каждого поля я прописываю вот такой код:
bool case_medical_care::eventFilter(QObject *target, QEvent *event)
{	
//ПОЛЕ 1
	if (target == ui->data)
    {
        if (event->type() == QEvent::FocusIn and dataFocus)
        {
             dataFocus = false;
             on_data_textEdited(ui-data->text());
        }
        if (event->type() == QEvent::FocusOut and !dataFocus)
        {
            dataFocus = true;
            ui->data->setCursorPosition(0);
        }
        if (event->type() == QEvent::KeyPress)
        {
            QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
            if (keyEvent->key() == Qt::Key_Down or keyEvent->key() == Qt::Key_Up)
            {
                on_dataP_textEdited(ui->data->text());
            }
        }
    }
	
//ПОЛЕ 2
	if (target == ui->text)
    {
        if (event->type() == QEvent::FocusIn and textFocus)
        {
             textFocus = false;
             on_text_textEdited(ui-text->text());
        }
        if (event->type() == QEvent::FocusOut and !textFocus)
        {
            textFocus = true;
            ui->text->setCursorPosition(0);
        }
        if (event->type() == QEvent::KeyPress)
        {
            QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
            if (keyEvent->key() == Qt::Key_Down or keyEvent->key() == Qt::Key_Up)
            {
                on_text_textEdited(ui->text->text());
            }
        }
    }
	return QObject::eventFilter(target, event);
}

Возможно ли из этого кода сделать одну функцию, что бы мне не пришлось её изменять, а я просто вписывал название полей в какой нибудь например массив и передал ей.
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы