Russian Qt Forum
Апрель 19, 2024, 13:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пропадает первый event в модальном QDialog  (Прочитано 1895 раз)
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)
        ui->edValue->setText(lineEdit->text());
    else
        ui->edValue->setText("");

    show();
    this->activateWindow();
    this->raise();
    ui->edValue->setFocus();
Вcе, что после show() - это попытки исправить ситуацию. Но все по-прежнему.
Хотя лайнедит после setFocus() становится визуально активным (курсор мигает).
Я так понимаю, что проблема в том, что я прерываю своим сигналом обработку сообщений, поэтому-то у меня и теряется (или уходит в другую очередь?) первое сообщение, но как поправить не могу сообразить.
Причем, если окно немодальное, то все работает правильно.
Буду благодарен за подсказки.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.