Название: Пропадает первый event в модальном QDialog Отправлено: titan83 от Сентябрь 04, 2017, 15:30 Коллеги, приветсвую.
К сожалению, вопрос срочный, поэтому пишу в надежде. В общем, тут пришлось в авральном порядке бежать с X11 на EGL, а заодно и с 5.4.2 на 5.9.1. А в программе была виртуальная клава. Но в новой кутэ она уже не работала, поэтому экстренно колхозю свой аналог. Cделал, вроде работает, но первый тык по тачскину пропадает, а остальное уже отрабатывает правильно. Так ловлю клик по лайнедиту Код: bool QWshLogin::eventFilter(QObject *object, QEvent *event) Так отрабатываю открытие окна{ if (event->type() == QEvent::MouseButtonPress) if (object == ui->lineEdit_Usercode) { emit requestVirtualKeyboard(ui->lineEdit_Usercode, false); return true; } return false; } Код: if (useCurrentText == true) Вcе, что после show() - это попытки исправить ситуацию. Но все по-прежнему.ui->edValue->setText(lineEdit->text()); else ui->edValue->setText(""); show(); this->activateWindow(); this->raise(); ui->edValue->setFocus(); Хотя лайнедит после setFocus() становится визуально активным (курсор мигает). Я так понимаю, что проблема в том, что я прерываю своим сигналом обработку сообщений, поэтому-то у меня и теряется (или уходит в другую очередь?) первое сообщение, но как поправить не могу сообразить. Причем, если окно немодальное, то все работает правильно. Буду благодарен за подсказки. |