Есть большая форма, на ней много полей, для каждого поля я прописываю вот такой код:
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);
}
Возможно ли из этого кода сделать одну функцию, что бы мне не пришлось её изменять, а я просто вписывал название полей в какой нибудь например массив и передал ей.