2016/10/20(木) [n年前の日記]
#1 [python] PySideのWidgetに入ったり出たりする時のイベント
enterEvent() や leaveEvent() を書けば、Widget内にマウスカーソルが入ったり出たりした時に処理ができるらしい。
_enterevent_test1.py
たしかに処理されてる。ように見える。
アレ? このスクリーンショットだと反映されてるように見えないな…。ちょっと変なタイミングでキャプチャしてしまったようで。まあいいや。こういう感じの画面が出るスクリプトだよ、ぐらいは伝わるだろう…。
_enterevent_test1.py
""" PySideのWidget内にマウスカーソルが出たり入ったりした時のイベント動作を確認 Windows10 x64 + Python 2.7.11 + PySide """ import sys from PySide.QtCore import * from PySide.QtGui import * class MyLabel(QLabel): def __init__(self, *argv, **keywords): super(MyLabel, self).__init__(*argv, **keywords) self.setFrameStyle(QFrame.Box | QFrame.Raised) self.setFixedSize(240, 64) self.enterCount = 0 self.leaveCount = 0 def enterEvent(self, event): self.enterCount += 1 self.setText("enterEvent %d" % self.enterCount) def leaveEvent(self, event): self.leaveCount += 1 self.setText("leaveEvent %d" % self.leaveCount) class MyWidget(QWidget): def __init__(self, *argv, **keywords): super(MyWidget, self).__init__(*argv, **keywords) layout = QVBoxLayout(self) layout.addWidget(MyLabel("Please move mouse cursor")) layout.addWidget(MyLabel("Please move mouse cursor")) layout.addWidget(MyLabel("Please move mouse cursor")) self.setLayout(layout) def main(): app = QApplication(sys.argv) w = MyWidget() w.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
たしかに処理されてる。ように見える。
アレ? このスクリーンショットだと反映されてるように見えないな…。ちょっと変なタイミングでキャプチャしてしまったようで。まあいいや。こういう感じの画面が出るスクリプトだよ、ぐらいは伝わるだろう…。
[ ツッコむ ]
以上です。