QGraphicsView showEvent not working.
-
@jsulm oh, sorry I am not notice that, but this is not a problem, it way my typo when I copy from my vscode, in my vscode is
class PhotoViewer(QtWidgets.QGraphicsView): tool_lock = 'mouse' def __init__(self, parent): super(PhotoViewer, self).__init__(parent) ... def showEvent(self, event): super().showEvent(event) print("Test") self.showEventHelper() def showEventHelper(self): self.fitInView()
and the problem still not solve.
-
Hi,
There's an issue with your init function. The first parameter shall be a scene, the second is the parent.
See the class documentation
-
@SGaist I wonder if that documentation is malformatted due to Python not supporting function overloading. The highlighted line indicates two arguments for the constructor. Inset below that appears to be a second constructor version that only accepts an optional QWidget parent. The two sentences at the end initially attracted my attention.
-
@JonB It's not my code.
I'm not convinced that misuse of the constructor which doesn't throw an exception or lead to program termination will cause a correctly implemented showEvent() to be ignored. A view without a scene is blank, but still a valid and showable QWidget.
import PyQt5.QtWidgets as QtWidgets class View(QtWidgets.QGraphicsView): def showEvent(self, event): print("showEvent") super().showEvent(event) app = QtWidgets.QApplication([]) view = View() view.show()
~:$ python test.py showEvent
-
@jeremy_k said in QGraphicsView showEvent not working.:
A view without a scene is blank, but still a valid and showable QWidget.
I was not aware of this. Your code shows
showEvent
being printed. Originally you said "Test never be printed out". So what is the situation? -
@JonB said in QGraphicsView showEvent not working.:
@jeremy_k said in QGraphicsView showEvent not working.:
A view without a scene is blank, but still a valid and showable QWidget.
I was not aware of this. Your code shows
showEvent
being printed. Originally you said "Test never be printed out".I'm not the OP.
-
@jeremy_k
Oh, LOL, sorry about that! Well @darrenleeleelee1, what is the difference between your case where you sayshowEvent()
is not hit and @jeremy_k's case where he shows it being hit? Or has this been solved and I am not understanding?! -
thanks guy I get my goal by the other way