mieki256's diary



2016/10/20(木) [n年前の日記]

#1 [python] PySideのWidgetに入ったり出たりする時のイベント

enterEvent() や leaveEvent() を書けば、Widget内にマウスカーソルが入ったり出たりした時に処理ができるらしい。

_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()

enterevent_test1_ss01.png

たしかに処理されてる。ように見える。

アレ? このスクリーンショットだと反映されてるように見えないな…。ちょっと変なタイミングでキャプチャしてしまったようで。まあいいや。こういう感じの画面が出るスクリプトだよ、ぐらいは伝わるだろう…。

以上です。

過去ログ表示

Prev - 2016/10 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project