как перемещаться по сцене с помощью мыши

я хочу перемещаться по сцене с помощью мыши а не с скролБаром. я сделал код в скролАреи недавно там он прекрасно работает сегодня я пытался сделать это в сцене. Скопировал код из файла и вставил в данный и отредоктировал но нечего не работает. пытался понять что не так я заметил что event обробатываеться тока при Enter. В остальных случаях он отвечает нет. мой код:

class main(QtWidgets.QWidget):

    def setupUI(self):
        self.resize(500,500)
        self.scene = QGraphicsScene(self)
        self.view = QGraphicsView(self)
        self.view.setScene(self.scene)
        self.scene.addItem(MoveObject(10,10,10))

        # self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        # self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.scene.addItem(grahics())
        self.scene.addItem(wid(10,10))
        self.view.setGeometry(QRect(0,0,450,450))
        self.view.installEventFilter(self)
        
    def eventFilter(self, obj , event):
        if obj is self.view :
            print(f"{event.type()} _move_ {QEvent.Type.MouseMove} _enter_ {QEvent.Type.MouseButtonPress} _realease_ {QEvent.Type.MouseButtonRelease}")
            print("yes" if event.type() in {QEvent.Type.MouseMove,QEvent.Type.MouseButtonPress,QEvent.Type.MouseButtonRelease} else "no")
            if event.type() == QEvent.Type.MouseMove:
                if self.start < event.x():
                    self.view.horizontalScrollBar().setValue(self.view.horizontalScrollBar().value()-1)
                    self.start = event.x()
                elif self.start > event.x():
                    self.view.horizontalScrollBar().setValue(self.view.horizontalScrollBar().value()+1)
                    self.start = event.x()

            elif event.type() == QEvent.Type.MouseButtonPress:
                self.start = event.x()
            elif event.type() == QEvent.Type.MouseButtonRelease:
                self.start = None

        return super().eventFilter(obj , event)

Ответы (1 шт):

Автор решения: Aix Play

Во первых начнём с того, пишите вы через код или через Qt Designer? Во вторых разбирая ваш код, я нашёл ошибки: Unresolved reference 'MoveObject', grahics, wid. Но код из текста, всё равно мало понятен. Добавьте ещё скрины из своего проекта. Чтобы понять что именно вы хотите сделать.

→ Ссылка