[PyQt] Hover Event for a QGraphicsItem
sw33tz
nyavuz.nm20 at gmail.com
Sun May 8 09:56:58 BST 2016
Yea thats definately not the reason because everything in my original code looks fine,what could be the problem exactly?
Sent from my iPhone
> On 08 May 2016, at 1:14 AM, Elvis Stansvik [via Python] <ml-node+s6n5190298h49 at n6.nabble.com> wrote:
>
> 2016-05-07 23:05 GMT+02:00 sw33tz <[hidden email]>:
> > Thanks for replying...I've updated my code but I still cant get it to work:
> >
> > class graphics_Object(QtGui.QGraphicsPixmapItem):
> > def __init__(self, parent=None):
> > super(switch_Object, self).__init__(parent)
>
> Should be graphics_Object here, not switch_Object ^ (in the call to super).
>
> Don't think that is the problem though, but it's late here and I have to sleep.
>
> Elvis
>
> > pixmap = QtGui.QPixmap("item.png")
> > self.graphics_pixItem = QtGui.QGraphicsPixmapItem(pixmap.scaled(40,
> > 40, QtCore.Qt.KeepAspectRatio))
> >
> > self.graphics_pixItem.setFlag(QtGui.QGraphicsPixmapItem.ItemIsSelectable)
> >
> > self.graphics_pixItem.setFlag(QtGui.QGraphicsPixmapItem.ItemIsMovable)
> > self.graphics_pixItem.setAcceptHoverEvents(True)
> >
> >
> > def hoverEnterEvent(self, event):
> > print 'hello'
> >
> > class graphicsScene(QtGui.QGraphicsScene):
> > def __init__(self, parent=None):
> > super(graphicsScene, self).__init__(parent)
> >
> > def mousePressEvent(self, event):
> > self.graphics_item = graphics_Object()
> > def mouseReleaseEvent(self, event)
> > self.addItem(self.self.graphics_item.graphics_pixItem)
> > self.graphics_item.self.graphics_pixItem.setPos(event.scenePos())
> >
> > class Form(QtGui.QMainWindow):
> > def __init__(self):
> > super(Form, self).__init__()
> > self.ui = uic.loadUi('form.ui')
> >
> > self.scene = graphicsScene()
> > self.ui.view.setScene(self.scene)
> >
> > self.setMouseTracking(True)
> >
> >
> > On Sat, May 7, 2016 at 10:55 PM, Elvis Stansvik [via Python] <[hidden
> > email]> wrote:
> >>
> >> Hi Nesibe,
> >>
> >> 2016-05-07 19:46 GMT+02:00 sw33tz <[hidden email]>:
> >> > I want some small text to pop up when I have my curser over a
> >> > QGraphicsItem
> >> > in my QGraphicsScene. I have a class that inherits from QGraphicsItem,
> >> > and
> >> > this represents my graphical items in the scene.
> >> >
> >> > I tried using the QGraphicsItem.hoverEnterEvent and I also set the
> >> > setAcceptHoverEvents(True), but I still can't enable that hover event. I
> >> > also came across an event filter method but I'm not sure where to
> >> > implement
> >> > it.
> >>
> >> This seems to work here:
> >>
> >>
> >> test.py:
> >>
> >> from sys import argv, exit
> >>
> >> from PyQt5.QtCore import Qt
> >> from PyQt5.QtWidgets import QApplication
> >> from PyQt5.QtWidgets import QGraphicsEllipseItem
> >> from PyQt5.QtWidgets import QGraphicsScene
> >> from PyQt5.QtWidgets import QGraphicsView
> >> from PyQt5.QtWidgets import QMainWindow
> >>
> >>
> >> class MyItem(QGraphicsEllipseItem):
> >>
> >> def __init__(self, parent=None):
> >> super(MyItem, self).__init__(parent)
> >>
> >> self.setRect(50, 50, 50, 50)
> >> self.setBrush(Qt.red)
> >> self.setAcceptHoverEvents(True)
> >>
> >> def hoverEnterEvent(self, event):
> >> print('hover enter')
> >>
> >> def hoverLeaveEvent(self, event):
> >> print('hover leave')
> >>
> >>
> >> app = None
> >>
> >>
> >> def main():
> >> global app
> >>
> >> app = QApplication(argv)
> >>
> >> scene = QGraphicsScene()
> >> scene.addItem(MyItem())
> >>
> >> view = QGraphicsView()
> >> view.setScene(scene)
> >>
> >> window = QMainWindow()
> >> window.setCentralWidget(view)
> >> window.show()
> >>
> >> exit(app.exec_())
> >>
> >>
> >> if __name__ == '__main__':
> >> main()
> >>
> >>
> >> Hope that helps.
> >>
> >> Best regards,
> >> Elvis
> >>
> >> >
> >> > Should I install the event filter in the QGraphicsItem class, or the
> >> > scene?
> >> > I tried both and I'm still not getting the desired result. I want to be
> >> > able
> >> > to hover over all the items in the scene.
> >> >
> >> >
> >> > class HoverEventFilter(QtCore.QObject):
> >> > def eventFilter(self, receiver, event):
> >> > if (event.type() == QtCore.QEvent.HoverEnter):
> >> > # this is for test purposes
> >> > print 'hover event'
> >> > return True
> >> > else:
> >> > # Call Base Class Method to Continue Normal Event Processing
> >> > return super(HoverEventFilter, self).eventFilter(receiver,
> >> > event)
> >> >
> >> >
> >> >
> >> > --
> >> > View this message in context:
> >> > http://python.6.x6.nabble.com/Hover-Event-for-a-QGraphicsItem-tp5190283.html
> >> > Sent from the PyQt mailing list archive at Nabble.com.
> >> > _______________________________________________
> >> > PyQt mailing list [hidden email]
> >> > https://www.riverbankcomputing.com/mailman/listinfo/pyqt
> >> _______________________________________________
> >> PyQt mailing list [hidden email]
> >> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
> >>
> >> ________________________________
> >> If you reply to this email, your message will be added to the discussion
> >> below:
> >>
> >> http://python.6.x6.nabble.com/Hover-Event-for-a-QGraphicsItem-tp5190283p5190286.html
> >> To unsubscribe from Hover Event for a QGraphicsItem, click here.
> >> NAML
> >
> >
> >
> > ________________________________
> > View this message in context: Re: Hover Event for a QGraphicsItem
> >
> > Sent from the PyQt mailing list archive at Nabble.com.
> >
> > _______________________________________________
> > PyQt mailing list [hidden email]
> > https://www.riverbankcomputing.com/mailman/listinfo/pyqt
> _______________________________________________
> PyQt mailing list [hidden email]
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
>
> If you reply to this email, your message will be added to the discussion below:
> http://python.6.x6.nabble.com/Hover-Event-for-a-QGraphicsItem-tp5190283p5190298.html
> To unsubscribe from Hover Event for a QGraphicsItem, click here.
> NAML
--
View this message in context: http://python.6.x6.nabble.com/Hover-Event-for-a-QGraphicsItem-tp5190283p5190312.html
Sent from the PyQt mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160508/230c6ef1/attachment-0001.html>
More information about the PyQt
mailing list