PyQt:表单上 2 个不同视图之间的独立 KeyPressEvent

PyQt: Independent KeyPressEvent between 2 different views on a form

我有一个 Python PyQt 程序,它在主 window 上有一个 QWidget。 我在同一个 QWidget 中添加了 2 个不同的视图。 当用户单击 Button1 时,我显示 view1 并隐藏 view2。 当用户单击 Button2 时,我显示 view2 并隐藏 view1。 每个视图都有自己的 KeyPressEvent,用于使用箭头键翻阅视图中的记录。

我不想同时翻阅两个视图中的记录,我只需要翻页活动视图的记录。

当相应的视图处于活动状态时,我如何disable/enable 适当的 KeyPressEvent。还是更好的方法?

抱歉没有代码,但很难简化我的工作示例。

如果您将焦点设置在相应视图中刚刚变为可见的对象上,则只会触发该视图的 keyPressEvent。无需禁用或启用按键事件。焦点会自动执行此操作。

上面的解决方案就是问题的答案。但是,我可能会从使用 QAction 按钮来触发更改视图,改为使用 tabwidget 来更改视图。