Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: unkeep от Ноябрь 11, 2014, 15:21



Название: как проигнорировать блокировку виджета модальным окном?
Отправлено: unkeep от Ноябрь 11, 2014, 15:21
В частности нужно сделать так, чтобы в MdiArea модальный диалог блокировал только cсвой родительский MdiSubwindow.

installEventFilter с такой реализацией не помог. "QEvent::WindowBlocked" выводится, но окно всё равно блокируется.
bool MyEventFilter::eventFilter(QObject* obj, QEvent* event)
{
    if (event->type() == QEvent::WindowBlocked)
    {
        qDebug() << "QEvent::WindowBlocked";
        return false;
    }

    return QObject::eventFilter(obj, event);
}


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: kambala от Ноябрь 11, 2014, 15:24
return true;


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: unkeep от Ноябрь 11, 2014, 15:39
return true;

всё равно блокирует. Ещё пробовал event переопределять в родительском виджете.
пс: у диалога стоит Qt::WindowModal


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: vulko от Ноябрь 11, 2014, 16:21
return true;

всё равно блокирует. Ещё пробовал event переопределять в родительском виджете.
пс: у диалога стоит Qt::WindowModal

возможно поможет event->accept() ?


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: unkeep от Ноябрь 11, 2014, 16:51
возможно поможет event->accept() ?
неа :-\


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: kambala от Ноябрь 11, 2014, 20:03
тогда скорее уж event->ignore()


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: vulko от Ноябрь 12, 2014, 09:13
тогда скорее уж event->ignore()

event->accept() вроде как раз маркирует ивент как обработанный и дальше не прокидывает.
вместе с с return true/false надо попробовать.
и ignore() тоже можно.

если не помогает, значит не в ивенте дело и не обработка ивента отвечает за это.


Название: Re: как проигнорировать блокировку виджета модальным окном?
Отправлено: kambala от Ноябрь 12, 2014, 18:29
можно попробовать по-другому: диалогу дать нулевого парента (ну или просто сделать его немодальным) и руками отправлять событие блокировки нужному виджету.