2016-02-06 2 views
0

У меня возникла проблема с захватом QKeyEvent в QOpenGLWidget, когда я использую его как ... виджет. Он отлично работает, если я использую свой QOpenGLWidget в качестве главного окна, но не если виджет является дочерним элементом другого mainWindow ... (ничего не происходит)Не удается захватить QkeyEvent в QopenGLWidget

Возможно, я испортил что-то о том, как работают виджеты Qt, но я не могу выясните это.

Спасибо

+0

У меня есть две идеи: – floppy12

ответ

0

Try вызова yourGLWidget->setFocusPolicy (Qt::StrongFocus);

От http://doc.qt.io/qt-5/qwidget.html#focusPolicy-prop: «Вы должны включить фокус клавиатуры для виджета, если она обрабатывает события клавиатуры Это обычно делается из конструктора виджета.».

+0

Он работает, установив его из конструктора. Кстати, это не так, когда я пытаюсь установить его из оконного дизайнера ... nevermind. Спасибо. – Valtiel

0

Я думаю, либо ваш лечить QKeyEvent (Может быть, это сочетание уже переведенный ключ) MainWindow или предотвращает переадресацию на ваш компонент пользовательского виджета. Либо когда используется как «QWidget», применяются специальные правила, и вам необходимо переопределить некоторые другие обработчики, чтобы сделать ваш обработчик возможным.

Смежные вопросы