QMenuBar重新实现MousePressEvent

问题描述 投票:1回答:1

我有一个带有FramelessWindowHint的窗口。我还有一个QMenuBar附加到QMainWindow。我想在用户单击菜单栏时捕获鼠标按下事件。我以为我可以像这样上新课:

class menubarclass(QtWidgets.QMenuBar):
    def __init__(self, parent):
        super().__init__(parent) 

然后重新实现该类中的mousePressEvent函数。

    def mousePressEvent(self, event):
        print("menubar clicked")

问题是重新实现此功能似乎覆盖了菜单栏中菜单/操作的功能-我无法单击它们。

所以我想我需要装饰mousePressEvent而不是重新实现它,但是我不确定如何执行,因为这是一个事件处理程序。

总之,我不想重写mousePressEvent处理程序,但是如果需要的话,可以添加其他代码?

python python-3.x qt pyqt pyqt5
1个回答
0
投票

Musicamante为我提供了我需要的答案

如果您只是在实现中调用基本实现(super()。mousePressEvent(event)),它应该可以工作。如果没有,请提供一个最小的,可复制的示例,以便我们了解发生了什么。 – 2分钟前musicamante

© www.soinside.com 2019 - 2024. All rights reserved.