-
[PyQt] QMediaPlayer, QGraphicsView, QGraphicsScene에서 마우스 좌표가 이상한 문제 해결 (mainwindow에서 widget불러오기)Programming/PyQt 2022. 6. 7. 18:32
비디오 영상을 재생하고 그 위에 ROI를 그려서 ROI위치를 export하는 프로그램을 만들고 있다.
MainWindow에서 모든 위젯들을 다 만들고 graphicsView위에 그림을 그리는데 그림도 안그려지고(배경 ui에서만 그려짐) 좌표도 이상했다.
mouseMoveEvent, mousePressEvent -> 이런 녀석들의 인자인 event(또는 e)는 해당 클래스를 기준으로 하기 때문에
메인윈도우에서 위의 함수를 사용하면 메인윈도우의 좌표가 나온다.
나는 로컬 위젯의 좌표를 원했기 때문에 클래스를 새로 만들어서 해당 위젯의 좌표만을 사용할 것이다.
class MyWindow(QMainWindow, ui): def __init__(self, parent =None): super(MyWindow,self).__init__(parent) self.setupUi(self)
이런식으로 메인 윈도우 위젯이 작성되있고,
class CView(QGraphicsView): def __init__(self, parent): super(CView,self).__init__(parent) self.scene = QGraphicsScene() self.setScene(self.scene)
추가한 위젯의 예시이다.
여기서 헷갈렸던 것은 메인윈도우의 init의 인자는 parent = None이고,
위젯의 init인자는 parent이다.
위와같이 클래스 초기화를 하면 잘 되었다.
'Programming > PyQt' 카테고리의 다른 글
QMediaPlayer 재생이 안 될 때 해결방법 (0) 2022.06.29 [PyQt] MediaPlayer, GraphicsView Size가 안 맞는 문제 해결 (0) 2022.06.16 [PyQt]QMediaPlayer로 Video Player만들기 (not use Pixmap) (0) 2022.05.31 [PyQt] Python에서 ffmpeg 관련 error 해결 (0) 2022.05.26 PyQt 여러 파일을 열고 ListView에 목록 보여주기 예제(getOpenFileNames) (0) 2022.05.24