import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QLineEdit, QToolTip, QWidget
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt, QEvent
class MyLineEdit(QLineEdit):
def __init__(self, parent=None):
super().__init__(parent)
# 启用鼠标跟踪
self.setMouseTracking(True)
def mouseMoveEvent(self, event):
print("dddddddddddddddddddddddd")
if self.rect().contains(event.pos()):
print(f"鼠标进入了 {self.objectName()} 控件")
pos = self.mapFromGlobal(self.cursor().pos())
print(pos)
widget = self.childAt(pos)
print(event.pos(),"=======",widget)
if widget is not None or widget =='':
print("6666")
class_name = widget.metaObject().className()
print(class_name)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Mouse Hover Event')
self.setGeometry(300, 300, 400, 200)
# 创建三个不同类型的控件
self.button = QPushButton('Button', self)
self.button.move(20, 20)
self.label = QLabel('Label', self)
self.label.move(20, 60)
self.line_edit = MyLineEdit(self)
self.line_edit.move(20, 100)
self.line_edit.setFixedHeight(80)
self.show()
self.button.setMouseTracking(True)
self.label.setMouseTracking(True)
# self.line_edit. QLineEdit setMouseTracking(True)
self.setMouseTracking(True) # 开启鼠标跟踪功能
def mouseMoveEvent(self, event):
# widget = self.childAt(event.pos())
pos = self.mapFromGlobal(self.cursor().pos())
print(pos)
widget = self.childAt(pos)
print(event.pos(),"=======",widget)
if widget is not None:
print("6666")
class_name = widget.metaObject().className()
print(class_name)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
PyQt5鼠标移动事件之进入子控件
最新推荐文章于 2024-01-21 13:51:41 发布