#-*- coding: utf-8 -*-
import sys, os, thread, time, commands
from PyQt4.QtCore import *
from PyQt4.QtGui import *

#in order to view this bug, launch this script,
#then move mouse on widget. a new widget appear with a red cross
#it moves by translation with your cursor
#May be you will have blinking here. But in order to reproduce, click on widget, near center.
#It's blinking a lot (100% CPU)
#it comes just after a .hide() methods called.

class Zoom_Croix(QWidget):
    def __init__(self, parent):
        QWidget.__init__(self)
        self.parent = parent
        self.setWindowFlags(Qt.SplashScreen)
    def paintEvent(self, event):
            painter = QPainter()
            painter.begin(self)
            painter.setPen(Qt.red)
            painter.drawLine(50, 0, 50, 100)
            painter.drawLine(0, 50, 100, 50)

class Label_Video(QLabel):
    def __init__(self, parent):
        QLabel.__init__(self,parent)
        self.setGeometry(QRect(0,0,640,480))
        self.parent=parent
        self.setCursor(Qt.ArrowCursor)
        self.pos=(0,0)
        self.zoom_croix=Zoom_Croix(self)
        self.croixGeometry(self.pos)
        self.setMouseTracking(True)

    def croixGeometry(self, pos):
        r=QRect(pos[0]+5,pos[1]+5,100,100)
        self.zoom_croix.setGeometry(r)
        
    def mouseReleaseEvent(self, event):
        self.pos = (event.x(), event.y())
        self.zoom_croix.hide()
    def enterEvent(self, event):
        self.zoom_croix.show()
        self.setCursor(Qt.CrossCursor)
    def leaveEvent(self, envent):
        self.zoom_croix.hide()
    def mouseMoveEvent(self, event):
          self.zoom_croix.show()
          self.pos=(event.x(), event.y())
          self.croixGeometry(self.pos)


class StartQT4(QMainWindow):
    def __init__(self, parent):
        QMainWindow.__init__(self)
        QWidget.__init__(self, parent)
        video_label = Label_Video(self)
def run():
    app = QApplication(sys.argv)

    windows = StartQT4(None)
    windows.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    run()
