Qt 的 HoverMove 与 MouseMove

今天在写一个Qt程序,全屏时隐藏工具栏,但是鼠标向上滑到顶时,工具栏出现。

开始的思路是重载MainWindow的mouseMoveEvent方法,发现不行:只有鼠标点下时才会触发。

后来查到需要将mouseTracking设为True,可是我设了之后还是不行。


再后来查资料+自己尝试,得出方法:利用eventFilter捕获HoverEvent事件。

在MainWindow的构造函数里加入 :(我用的是PyQt)

self.installEventFilter(self)


实现eventFilter方法:

    def eventFilter(self, obj, event):

        # 处理全屏时,上划鼠标显示工具样
        if (self.isFullScreen()):
            if event.type() == QEvent.HoverMove and obj == self:
                # print 'HoverMove (%d, %d)' % (event.pos().x(), event.pos().y())
                if event.pos().y() < 10:
                    self.toolBar.setVisible(True)
                elif event.pos().y() > self.toolBar.height():
                    self.toolBar.setVisible(not self.isFullScreen())





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值