魏全对 2023-01-16 22:58 采纳率: 0%
浏览 50

在python pyside2 中 mouseMoveEvent 在控件上无效

mouseMoveEvent在控件上无效

以下是我的代码

import sys
from PySide2.QtWidgets import QWidget, QApplication
from PySide2 import QtUiTools, QtCore


class mouseMoveEvent(QWidget):
    def __init__(self):
        super().__init__()
        self.ui = UiLoader().loadUi('./ui/ui/test.ui', self)
        self.ui.setMouseTracking(True)
        self.show()

    def mouseMoveEvent(self, e):
        print('666')

class UiLoader(QtUiTools.QUiLoader):
    _baseinstance = None

    def createWidget(self, classname, parent=None, name=''):
        if parent is None and self._baseinstance is not None:
            widget = self._baseinstance
        else:
            widget = super(UiLoader, self).createWidget(classname, parent, name)
            if self._baseinstance is not None:
                setattr(self._baseinstance, name, widget)
        return widget

    def loadUi(self, uifile, baseinstance=None):
        self._baseinstance = baseinstance
        widget = self.load(uifile)
        QtCore.QMetaObject.connectSlotsByName(widget)
        return widget


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = mouseMoveEvent()
    sys.exit(app.exec_())

其中窗口就只放了一个label

img

运行后,在界面其他地方是可以触发 mouseMoveEvent 的,在 label 上的时候就不触发,不知道有没有人遇见和我一样的情况,求帮助!非常感谢!

img

  • 写回答

1条回答 默认 最新

  • P2441M 2023-01-17 08:38
    关注

    对子控件也添加setMouseTracking(True)有没有用呢,可能是鼠标在子控件上时触发的是子控件的mouseMoveEvent。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月16日

悬赏问题

  • ¥25 TABLEAU PREP无法打开
  • ¥15 关于#c语言#的问题:求完整代码条件好说
  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)
  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA