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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не могу получить сигнал от videoWidget в Фонон плеер если он в Фул скрин режиме  (Прочитано 2802 раз)
Max Payne
Гость
« : Сентябрь 10, 2010, 01:57 »

После открытия моего плеера на весь екран, пытаюсь словить через keyReleaseEvent (QKeyEvent *) который я переопределил в основном класе, нажатие кнопки клавиатуры  и ничего не получаю... Подскажие в чем запара... После открытия в фул скрине Управление остаеться у ОСновного окна или передаеться ВидеоВиджету плеера?
И Если да то походу нужно переопределять keyReleaseEvent (QKeyEvent *) Видео виджета, так ?
Записан
Denjs
Гость
« Ответ #1 : Сентябрь 10, 2010, 08:12 »

гм... не знаю что у вас там происходит... но попробуйте QObject::installEventFilter ( QObject * filterObj ) на qApp (qapplication::instance())
или аналогично на ваш фононовский виджет ....

столкнулся с тем, что события некоторых типов окон могут то-ли идти в обход qApp то-ли ещё как... но фильтр установленный на qАpp может не срабатывать на события направленные к данным окнам/виджетам.
« Последнее редактирование: Сентябрь 10, 2010, 08:15 от Denjs » Записан
Max Payne
Гость
« Ответ #2 : Сентябрь 13, 2010, 01:33 »

Все равно не получаеться, при открытии на весь экран события вообще не обрабатываются, Не работает брэкпоинт ни на changeEvent(QEvent*) основного класса ни на переопределенной функции void Madia::keyReleaseEvent(QKeyEvent *ev), Просто не обрабатываються события функцией основного класса
Записан
Max Payne
Гость
« Ответ #3 : Сентябрь 23, 2010, 19:07 »

Все разобрался... Переопределил
Код:
bool MyClass ::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == play->videoWidget()) {
        if (event->type() == QEvent::KeyPress) {
            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
            if ((keyEvent->key () == Qt::Key_1))
            {
                qDebug() << "sfsesef   - - - - " << keyEvent->key();
                play->videoWidget()->setFullScreen(false);
                fuul_sc_pl = false;
            }
//            if ((keyEvent->key () == Qt::Key_1)&&(fuul_sc_pl==false))
//            {
//                qDebug() << "sfsesef   - - - - " << keyEvent->key();
//                play->videoWidget()->setFullScreen(true);
//                fuul_sc_pl = true;
//            }

            return true;
        } else {
            return false;
        }
    } else {
        // pass the event on to the parent class
        return DemAstPro::eventFilter(obj, event);
    }
}
Код:
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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