gui creator biblioteca python pyqt

python - creator - evento PyQt Hover con imagen Svg



qt biblioteca (1)

Está supervisando eventos de MySvg para MySvg pero está agregando otro QGraphicsSvgItem a la vista que es solo una instancia ( MySvg.image ) en MySvg . Su MySvg ni siquiera está en la vista. Pruebe de esta manera:

#!/usr/bin/python import sys from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtSvg import * class Main(QWidget): def __init__(self): super(Main, self).__init__() hbox = QHBoxLayout() self.setLayout(hbox) self.view = MyView(self) self.scene = QGraphicsScene() self.view.setScene(self.scene) hbox.addWidget(self.view) class MyView(QGraphicsView): def __init__(self, parent): super(MyView, self).__init__(parent) self.parent = parent def mousePressEvent(self, event): super(MyView, self).mousePressEvent(event) test = MySvg() self.parent.scene.addItem(test) class MySvg(QGraphicsSvgItem): def __init__(self): super(MySvg, self).__init__(''ubuntu.svg'') self.setFlags(QGraphicsItem.ItemIsSelectable| QGraphicsItem.ItemIsMovable) self.setAcceptsHoverEvents(True) def hoverEnterEvent(self, event): print ''Enter'' def hoverLeaveEvent(self, event): print ''Leave'' def hoverMoveEvent(self, event): print ''Moving'' def runMain(): app = QApplication(sys.argv) ex = Main() ex.show() sys.exit(app.exec_()) if __name__ == ''__main__'': runMain()

He estado trabajando en esto desde hace un tiempo y no puedo entender lo que estoy haciendo mal. Espero que alguien aquí pueda ayudar.

Intento que funcionen los eventos de desplazamiento cuando paso el mouse sobre un elemento Svg que está en un QGraphicsScene. Aquí está el código con el que he estado jugando.

#!/usr/bin/python import sys from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtSvg import * class Main(QWidget): def __init__(self): super(Main, self).__init__() hbox = QHBoxLayout() self.setLayout(hbox) self.view = MyView(self) self.scene = QGraphicsScene() self.view.setScene(self.scene) hbox.addWidget(self.view) class MyView(QGraphicsView): def __init__(self, parent): super(MyView, self).__init__(parent) self.parent = parent def mousePressEvent(self, event): super(MyView, self).mousePressEvent(event) test = MySvg() self.parent.scene.addItem(test.image) class MySvg(QGraphicsSvgItem): def __init__(self): super(MySvg, self).__init__() self.image = QGraphicsSvgItem(''ubuntu.svg'') self.image.setFlags(QGraphicsItem.ItemIsSelectable| QGraphicsItem.ItemIsMovable) self.setAcceptsHoverEvents(True) def hoverEnterEvent(self, event): print ''Enter'' def hoverLeaveEvent(self, event): print ''Leave'' def hoverMoveEvent(self, event): print ''Moving'' def runMain(): app = QApplication(sys.argv) ex = Main() ex.show() sys.exit(app.exec_()) if __name__ == ''__main__'': runMain()

Espero que alguien pueda ayudar.