gpt4 book ai didi

python - 如何使用Label跟踪鼠标进入事件

转载 作者:行者123 更新时间:2023-12-01 02:43:48 26 4
gpt4 key购买 nike

下面的代码创建了一个小部件,其中一行包含三个标签。我希望每次将鼠标放置在其中一个标签上时,鼠标光标都会从默认的“箭头”更改为“手”图标。如何实现?

enter image description here

enter image description here

class SquareLabel(QLabel):
def __init__(self, parent=None):
super(SquareLabel, self).__init__(parent)
self.setAutoFillBackground(True)
p = self.palette()
p.setColor(self.backgroundRole(), QColor(223, 230, 248))
self.setPalette(p)

def mousePressEvent(self, event):
print event


class SuperEdit(QWidget):
def __init__(self, data, parent=None):
super(SuperEdit, self).__init__(parent)

layout = QHBoxLayout()
layout.setContentsMargins(2, 2, 2, 2)
self.setLayout(layout)

for name in data:
label = SquareLabel(self)
label.setText(name)
layout.addWidget(label)


if __name__ == '__main__':
names = ['Name 1', 'Name 2', 'Name 3']
app = QApplication([])
editor = SuperEdit(names)
editor.show()
app.exec_()

最佳答案

可以直接在标签类中使用该方法来设置光标:

from PyQt5.QtGui import QCursor
from PyQt5.QtCore import Qt

self.setCursor(QCursor(Qt.PointingHandCursor))
<小时/>

要检测鼠标何时进入小部件,技巧是将 setMouseTracking 定义为 True,然后可以触发事件:

class SquareLabel(QLabel):
def __init__(self, parent=None):
super(SquareLabel, self).__init__(parent)
self.setAutoFillBackground(True)
p = self.palette()
p.setColor(self.backgroundRole(), QColor(223, 230, 248))
self.setPalette(p)
self.setMouseTracking(True)

def mouseMoveEvent(self, event):
print "On Hover" # event.pos().x(), event.pos().y()

def mousePressEvent(self, event):
print event

关于python - 如何使用Label跟踪鼠标进入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45404102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com