示例#1
0
 def __setZoomLevel(self, scale):
     self.__zoomLevel = max(30, min(scale, 300))
     scale = round(self.__zoomLevel)
     self.__zoomOutAction.setEnabled(scale != 30)
     self.__zoomInAction.setEnabled(scale != 300)
     if self.__effectiveZoomLevel != scale:
         self.__effectiveZoomLevel = scale
         transform = QTransform()
         transform.scale(scale / 100, scale / 100)
         self.setTransform(transform)
         self.zoomLevelChanged.emit(scale)
示例#2
0
 def __setZoomLevel(self, scale):
     # type: (float) -> None
     self.__zoomLevel = max(30, min(scale, 300))
     scale = round(self.__zoomLevel)
     self.__zoomOutAction.setEnabled(scale != 30)
     self.__zoomInAction.setEnabled(scale != 300)
     if self.__effectiveZoomLevel != scale:
         self.__effectiveZoomLevel = scale
         transform = QTransform()
         transform.scale(scale / 100, scale / 100)
         self.setTransform(transform)
         self.zoomLevelChanged.emit(scale)
示例#3
0
 def __setZoomLevel(self, scale, anchor=None):
     # type: (float, Optional[QPointF]) -> None
     self.__zoomLevel = max(30, min(scale, 300))
     scale = round(self.__zoomLevel)
     self.__zoomOutAction.setEnabled(scale != 30)
     self.__zoomInAction.setEnabled(scale != 300)
     if self.__effectiveZoomLevel != scale:
         self.__effectiveZoomLevel = scale
         transform = QTransform()
         transform.scale(scale / 100, scale / 100)
         if anchor is not None:
             anchor = self.mapFromScene(anchor)
         self.setTransform(transform)
         if anchor is not None:
             center = self.viewport().rect().center()
             diff = self.mapToScene(center) - self.mapToScene(anchor)
             self.centerOn(anchor + diff)
         self.zoomLevelChanged.emit(scale)
示例#4
0
文件: dock.py 项目: lanzagar/orange3
    def __init__(self, *args, **kwargs):
        QDockWidget.__init__(self, *args, **kwargs)

        self.__expandedWidget = None
        self.__collapsedWidget = None
        self.__expanded = True

        self.__trueMinimumWidth = -1

        self.setFeatures(QDockWidget.DockWidgetClosable | \
                         QDockWidget.DockWidgetMovable)
        self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)

        self.featuresChanged.connect(self.__onFeaturesChanged)
        self.dockLocationChanged.connect(self.__onDockLocationChanged)

        # Use the toolbar horizontal extension button icon as the default
        # for the expand/collapse button
        icon = self.style().standardIcon(
            QStyle.SP_ToolBarHorizontalExtensionButton)

        # Mirror the icon
        transform = QTransform()
        transform = transform.scale(-1.0, 1.0)
        icon_rev = QIcon()
        for s in (8, 12, 14, 16, 18, 24, 32, 48, 64):
            pm = icon.pixmap(s, s)
            icon_rev.addPixmap(pm.transformed(transform))

        self.__iconRight = QIcon(icon)
        self.__iconLeft = QIcon(icon_rev)

        close = self.findChild(QAbstractButton,
                               name="qt_dockwidget_closebutton")

        close.installEventFilter(self)
        self.__closeButton = close

        self.__stack = AnimatedStackedWidget()

        self.__stack.setSizePolicy(QSizePolicy.Fixed,
                                   QSizePolicy.Expanding)

        self.__stack.transitionStarted.connect(self.__onTransitionStarted)
        self.__stack.transitionFinished.connect(self.__onTransitionFinished)

        QDockWidget.setWidget(self, self.__stack)

        self.__closeButton.setIcon(self.__iconLeft)
示例#5
0
    def __init__(self, *args, **kwargs):
        QDockWidget.__init__(self, *args, **kwargs)

        self.__expandedWidget = None
        self.__collapsedWidget = None
        self.__expanded = True

        self.__trueMinimumWidth = -1

        self.setFeatures(QDockWidget.DockWidgetClosable | \
                         QDockWidget.DockWidgetMovable)
        self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)

        self.featuresChanged.connect(self.__onFeaturesChanged)
        self.dockLocationChanged.connect(self.__onDockLocationChanged)

        # Use the toolbar horizontal extension button icon as the default
        # for the expand/collapse button
        icon = self.style().standardIcon(
            QStyle.SP_ToolBarHorizontalExtensionButton)

        # Mirror the icon
        transform = QTransform()
        transform = transform.scale(-1.0, 1.0)
        icon_rev = QIcon()
        for s in (8, 12, 14, 16, 18, 24, 32, 48, 64):
            pm = icon.pixmap(s, s)
            icon_rev.addPixmap(pm.transformed(transform))

        self.__iconRight = QIcon(icon)
        self.__iconLeft = QIcon(icon_rev)

        close = self.findChild(QAbstractButton,
                               name="qt_dockwidget_closebutton")

        close.installEventFilter(self)
        self.__closeButton = close

        self.__stack = AnimatedStackedWidget()

        self.__stack.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)

        self.__stack.transitionStarted.connect(self.__onTransitionStarted)
        self.__stack.transitionFinished.connect(self.__onTransitionFinished)

        QDockWidget.setWidget(self, self.__stack)

        self.__closeButton.setIcon(self.__iconLeft)
    def pixmapTransform(self) -> QTransform:
        if self.__pixmap.isNull():
            return QTransform()

        pxsize = QSizeF(self.__pixmap.size())
        crect = self.contentsRect()
        transform = QTransform()
        transform = transform.translate(crect.left(), crect.top())

        if self.__scaleContents:
            csize = scaled(pxsize, crect.size(), self.__aspectMode)
        else:
            csize = pxsize

        xscale = csize.width() / pxsize.width()
        yscale = csize.height() / pxsize.height()

        return transform.scale(xscale, yscale)
示例#7
0
 def __set_zoom(self, scale):
     self.__scale = min(15, max(scale, 3))
     transform = QTransform()
     transform.scale(self.__scale / 10, self.__scale / 10)
     self.setTransform(transform)
示例#8
0
 def __set_zoom(self, scale):
     self.__scale = min(15, max(scale, 3))
     transform = QTransform()
     transform.scale(self.__scale / 10, self.__scale / 10)
     self.setTransform(transform)