QLineEdit沒有內置的鼠標懸停信號。
但是,通過安裝event-filter可以非常容易地實現類似的目的。這種技術適用於任何類型的小部件,您可能需要做的唯一的其他事情就是set mouse tracking(儘管QLineEdit默認情況下會啓用此功能)。
下面的演示腳本顯示瞭如何跟蹤各種鼠標移動事件:ekhumoro
from PyQt4 import QtCore, QtGui
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.edit = QtGui.QLineEdit(self)
self.edit.installEventFilter(self)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.edit)
def eventFilter(self, source, event):
if source is self.edit:
if event.type() == QtCore.QEvent.MouseMove:
pos = event.globalPos()
print('pos: %d, %d' % (pos.x(), pos.y()))
elif event.type() == QtCore.QEvent.Enter:
print('ENTER')
elif event.type() == QtCore.QEvent.Leave:
print('LEAVE')
return QtGui.QWidget.eventFilter(self, source, event)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(500, 300, 300, 100)
window.show()
sys.exit(app.exec_())
感謝。它完美的作品:) –