没有焦点的KeyPressEvent

我正在编写一个简单的GUI,它将在特定点打开一个opencv窗口。该窗口具有一些非常基本的keyEvents来控制它。我想通过一些功能来推进这一点。由于我的QtGui是我的控制器,因此我认为使用KeyPressedEvent这样做是一种好方法。我的问题是,如果我在opencv窗口上处于活动状态,则无法触发KeyEvent。

那么,如果我的Gui不在焦点内,该如何触发KeyEvent?

我真的需要使用GrabKeyboard吗?

以下代码重现了我的问题:

import sys
from PyQt5.QtWidgets import (QApplication, QWidget)
from PyQt5.Qt import Qt


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setFocusPolicy(Qt.StrongFocus)

    def keyPressEvent(self, event):
        print('Key Pressed!')


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = MainWindow()
    window.show() 

    sys.exit(app.exec_())
评论