在哪里可以找到 QPixMap 发出的信号列表及其描述?我查看了官方文档,还用谷歌搜索了“pyqt4 qpixmap 信号”,但我找不到任何东西。
我需要这个,因为我需要更改鼠标悬停在 QPixMap 上时显示的图像。我希望简单地将一个函数连接到“悬停”或“鼠标悬停”信号,但我找不到这样的东西。
一个更普遍的问题:将来,如果我想找到某个类发出的信号列表,我在哪里可以找到这些信息?谢谢。
QPixmap 类没有定义任何信号。只有QObject的子类可以定义信号,而QPixmap不是QObject的子类。
要跟踪鼠标移动,您必须监视相关系统事件,这些事件被发送到用于显示像素图的小部件。一种方法是在显示小部件上安装 event-filter,并处理其 enter 和 leave 事件。
这是一个简单的演示,展示了如何做到这一点:
from PyQt4 import QtCore, QtGui
class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
self.pixmap1 = QtGui.QPixmap('image1.jpg')
self.pixmap2 = QtGui.QPixmap('image2.jpg')
self.label = QtGui.QLabel(self)
self.label.setPixmap(self.pixmap1)
self.label.installEventFilter(self)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.label)
def eventFilter(self, widget, event):
if widget is self.label:
if event.type() == QtCore.QEvent.Enter:
self.label.setPixmap(self.pixmap2)
elif event.type() == QtCore.QEvent.Leave:
self.label.setPixmap(self.pixmap1)
return super(Window, self).eventFilter(widget, event)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(500, 300, 200, 200)
window.show()
sys.exit(app.exec_())