我正在尝试链接两个 qgraphicsview 对象,以便当一个窗口放大另一个 qgraphicsview 时也会缩放。我试图通过在一个窗口要缩放时调用测试函数来实现这一点。然后我尝试在另一个 qgraphicsview 对象中调用 self.scale(factor,factor) 。我收到一个错误:AttributeError:'PhotoViewer' 对象没有属性'viewer'。我如何得到我正在尝试调用类 ui self.viewer 但从错误判断我仍在 Photoviewer 对象中。当一个窗口被放大时,如何调用其他窗口 self.scale?提前致谢。
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt, QPoint
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtGui import QPixmap, QPainter, QPen
import sys
class PhotoViewer(QtWidgets.QGraphicsView):
photoClicked = QtCore.pyqtSignal(QtCore.QPoint)
def __init__(self, parent,num_view):
super(PhotoViewer, self).__init__(parent)
#to track which viewer
self.num_view=num_view
self.drawmode=0
self._zoom = 0
self.drawing = False
self.lastPoint = QPoint()
self.image=False
self.image=QPixmap(r"image.jpg")
self._empty = True
self._scene = QtWidgets.QGraphicsScene(self)
self._photo = QtWidgets.QGraphicsPixmapItem()
self._scene.addItem(self._photo)
self.setScene(self._scene)
self.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
self.setResizeAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setBackgroundBrush(QtGui.QBrush(QtGui.QColor(30, 30, 30)))
self.setFrameShape(QtWidgets.QFrame.NoFrame)
def hasPhoto(self):
return not self._empty
MYYA
相关分类