Ejemplo n.º 1
0
class GraphicsDrawApp(QtGui.QMainWindow):
    def __init__(self, parent=None, flags=QtCore.Qt.WindowFlags(0)):
        QtGui.QMainWindow.__init__(self, parent, flags)
        self.statusBar().show()

        self.scene = QtGui.QGraphicsScene(self)
        self.graphicsview = QtGui.QGraphicsView(self.scene, self)
        #~ self.graphicsview.setMouseTracking(True)    # @TODO: check
        self.setCentralWidget(self.graphicsview)

        self.mousemanager = MouseManager(self)
        self.mousemanager.register(self.graphicsview)
        self.mousemanager.addMode(RubberBandMode)
        self.mousemanager.addMode(qt4draw.DrawPointMode)
        self.mousemanager.addMode(qt4draw.DrawLineMode)
        #self.mousemanager.addMode(qt4draw.DrawPolygonMode)
        self.mousemanager.addMode(qt4draw.DrawRectMode)
        self.mousemanager.addMode(qt4draw.DrawEllipseMode)
        self.mousemanager.mode = 'hand'

        # File Actions
        self.fileactions = self._setupFileActions()

        menu = QtGui.QMenu('&File', self)
        menu.addActions(self.fileactions.actions())
        self.menuBar().addMenu(menu)
        self._filemenu = menu

        toolbar = QtGui.QToolBar('File toolbar', self)
        toolbar.addActions(self.fileactions.actions())
        self.addToolBar(toolbar)

        # Mouse Actions
        menu = QtGui.QMenu('Mouse', self)
        menu.addActions(self.mousemanager.actions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtGui.QToolBar('Mouse toolbar')
        toolbar.addActions(self.mousemanager.actions.actions())
        self.addToolBar(toolbar)

        # View Actions
        self.viewactions = self._setupViewActions()

        menu = QtGui.QMenu('&View', self)
        menu.addActions(self.viewactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtGui.QToolBar('View toolbar')
        toolbar.addActions(self.viewactions.actions())
        self.addToolBar(toolbar)

        # Help action
        self.helpactions = self._setupHelpActions()

        menu = QtGui.QMenu('&Help', self)
        menu.addActions(self.helpactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtGui.QToolBar('Help toolbar', self)
        toolbar.addActions(self.helpactions.actions())
        self.addToolBar(toolbar)

        self.scene.setSceneRect(0, 0, 800, 600)
        self.statusBar().showMessage('Ready')

    def _setupFileActions(self):
        style = self.style()

        actions = QtGui.QActionGroup(self)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogOpenButton)
        QtGui.QAction(icon, self.tr('&Open'), actions,
                      objectName='openAction',
                      shortcut=self.tr('Ctrl+O'),
                      statusTip=self.tr('Open'),
                      triggered=self.onOpen)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogSaveButton)
        QtGui.QAction(icon, self.tr('&Save As'), actions,
                      objectName='saveAsAction',
                      shortcut=self.tr('Ctrl+S'),
                      statusTip=self.tr('Save as'),
                      triggered=self.onSave)

        icon = QtGui.QIcon(
                ':/trolltech/dialogs/qprintpreviewdialog/images/print-32.png')
        QtGui.QAction(icon, self.tr('&Print'), actions,
                      objectName='printAction',
                      shortcut=self.tr('Ctrl+P'),
                      statusTip=self.tr('Print'),
                      triggered=self.onPrint)

        QtGui.QAction(actions).setSeparator(True)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogCancelButton)
        QtGui.QAction(icon, self.tr('&Quit'), actions,
                      objectName='exitAction',
                      shortcut=self.tr('Ctrl+Q'),
                      statusTip=self.tr('Quit'),
                      triggered=self.close)

        return actions

    def _setupViewActions(self):
        style = self.style()
        actions = QtGui.QActionGroup(self)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogResetButton)
        QtGui.QAction(icon, self.tr('Reset'), actions,
                      objectName='resetAction',
                      statusTip=self.tr('Reset'),
                      triggered=self.onReset)

        QtGui.QAction(actions).setSeparator(True)

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/zoom-in-32.png')
        QtGui.QAction(icon, self.tr('Zoom In'), actions,
                      objectName='zoomInAction',
                      statusTip=self.tr('Zoom In'),
                      shortcut=self.tr('Ctrl++'),
                      triggered=lambda: self.graphicsview.scale(1.2, 1.2))

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/zoom-out-32.png')
        QtGui.QAction(icon, self.tr('Zoom Out'), actions,
                      objectName='zoomOutAction',
                      statusTip=self.tr('Zoom Out'),
                      shortcut=self.tr('Ctrl+-'),
                      triggered=lambda: self.graphicsview.scale(1 / 1.2,
                                                                1 / 1.2))

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/page-setup-24.png')
        QtGui.QAction(icon, self.tr('Zoom 1:1'), actions,
                      objectName='zoomResetAction',
                      statusTip=self.tr('Zoom 1:1'),
                      triggered=lambda: self.graphicsview.setMatrix(
                                            QtGui.QMatrix(1, 0, 0, -1, 0, 0)))

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/fit-page-32.png')
        QtGui.QAction(icon, self.tr('Zoom Fit'), actions,
                      objectName='zoomFitAction',
                      statusTip=self.tr('Zoom Fit'),
                      #checkable=True,
                      triggered=lambda: self.graphicsview.fitInView(
                                                self.graphicsview.sceneRect(),
                                                QtCore.Qt.KeepAspectRatio))

        return actions

    def _setupHelpActions(self):
        actions = QtGui.QActionGroup(self)

        icon = QtGui.QIcon(
                    ':/trolltech/styles/commonstyle/images/fileinfo-32.png')
        QtGui.QAction(icon, self.tr('About'), actions,
                      objectName='aboutAction',
                      statusTip=self.tr('About'),
                      triggered=self.about)

        icon = QtGui.QIcon(':/trolltech/qmessagebox/images/qtlogo-64.png')
        QtGui.QAction(icon, self.tr('About Qt'), actions,
                      objectName='aboutQtAction',
                      statusTip=self.tr('About Qt'),
                      triggered=QtGui.QApplication.aboutQt)

        return actions

    @QtCore.Slot()
    def about(self):
        title = self.tr('Qt4 Graphics Draw Example')
        text = ['<h1>Graphics Draw</h1>'
                '<p>Example program for the basic Qt4 graphics drawing.</p>',
                '<p>Copyright (C): 2010-2012 '
                '<a href="mailto:[email protected]">'
                    'Antonio Valentino<a>.</p>']
        text = self.tr('\n'.join(text))
        QtGui.QMessageBox.about(self, title, text)

    @QtCore.Slot()
    def reset(self):
        self.scene.clear()
        self.scene.setSceneRect(0, 0, 800, 600)
        self.graphicsview.setTransform(QtGui.QTransform())

    @QtCore.Slot()
    def onReset(self):
        ret = QtGui.QMessageBox.question(self,
                self.tr('Reset'),
                self.tr('Are you sure you want to reset the document?\n'
                        'All changes will be lost.'))
        if ret == QtGui.QMessageBox.Ok:
            self.reset()

    @QtCore.Slot()
    def onOpen(self):
        filters = [
            self.tr('All files (*)'),
        ]
        filters.extend('%s file (*.%s)' % (str(f).upper(), str(f))
                        for f in QtGui.QImageReader.supportedImageFormats())

        filename, filter_ = QtGui.QFileDialog.getOpenFileNameAndFilter(
                                        self,
                                        self.tr('Load picture'),
                                        QtCore.QDir.home().absolutePath(),
                                        ';;'.join(filters))  # , filters[1])
        if filename:
            if '.svg' in filename:
                item = QtSvg.QGraphicsSvgItem(filename)
            else:
                image = QtGui.QImage(filename)
                item = QtGui.QGraphicsPixmapItem(image)

            item.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True)
            item.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True)

            self.scene.addItem(item)

    @QtCore.Slot()
    def onSave(self):
        qt4support.imgexport(self.scene, self)

    @QtCore.Slot()
    def onPrint(self):
        qt4support.printObject(self.scene, parent=self)
Ejemplo n.º 2
0
class GraphicsDrawApp(QtGui.QMainWindow):
    def __init__(self, parent=None, flags=QtCore.Qt.WindowFlags(0)):
        QtGui.QMainWindow.__init__(self, parent, flags)
        self.statusBar().show()

        self.scene = QtGui.QGraphicsScene(self)
        self.graphicsview = QtGui.QGraphicsView(self.scene, self)
        #~ self.graphicsview.setMouseTracking(True)    # @TODO: check
        self.setCentralWidget(self.graphicsview)

        self.mousemanager = MouseManager(self)
        self.mousemanager.register(self.graphicsview)
        self.mousemanager.addMode(RubberBandMode)
        self.mousemanager.addMode(qt4draw.DrawPointMode)
        self.mousemanager.addMode(qt4draw.DrawLineMode)
        #self.mousemanager.addMode(qt4draw.DrawPolygonMode)
        self.mousemanager.addMode(qt4draw.DrawRectMode)
        self.mousemanager.addMode(qt4draw.DrawEllipseMode)
        self.mousemanager.mode = 'hand'

        # File Actions
        self.fileactions = self._setupFileActions()

        menu = QtGui.QMenu('&File', self)
        menu.addActions(self.fileactions.actions())
        self.menuBar().addMenu(menu)
        self._filemenu = menu

        toolbar = QtGui.QToolBar('File toolbar', self)
        toolbar.addActions(self.fileactions.actions())
        self.addToolBar(toolbar)

        # Mouse Actions
        menu = QtGui.QMenu('Mouse', self)
        menu.addActions(self.mousemanager.actions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtGui.QToolBar('Mouse toolbar')
        toolbar.addActions(self.mousemanager.actions.actions())
        self.addToolBar(toolbar)

        # View Actions
        self.viewactions = self._setupViewActions()

        menu = QtGui.QMenu('&View', self)
        menu.addActions(self.viewactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtGui.QToolBar('View toolbar')
        toolbar.addActions(self.viewactions.actions())
        self.addToolBar(toolbar)

        # Help action
        self.helpactions = self._setupHelpActions()

        menu = QtGui.QMenu('&Help', self)
        menu.addActions(self.helpactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtGui.QToolBar('Help toolbar', self)
        toolbar.addActions(self.helpactions.actions())
        self.addToolBar(toolbar)

        self.scene.setSceneRect(0, 0, 800, 600)
        self.statusBar().showMessage('Ready')

    def _setupFileActions(self):
        style = self.style()

        actions = QtGui.QActionGroup(self)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogOpenButton)
        QtGui.QAction(icon,
                      self.tr('&Open'),
                      actions,
                      objectName='openAction',
                      shortcut=self.tr('Ctrl+O'),
                      statusTip=self.tr('Open'),
                      triggered=self.onOpen)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogSaveButton)
        QtGui.QAction(icon,
                      self.tr('&Save As'),
                      actions,
                      objectName='saveAsAction',
                      shortcut=self.tr('Ctrl+S'),
                      statusTip=self.tr('Save as'),
                      triggered=self.onSave)

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/print-32.png')
        QtGui.QAction(icon,
                      self.tr('&Print'),
                      actions,
                      objectName='printAction',
                      shortcut=self.tr('Ctrl+P'),
                      statusTip=self.tr('Print'),
                      triggered=self.onPrint)

        QtGui.QAction(actions).setSeparator(True)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogCancelButton)
        QtGui.QAction(icon,
                      self.tr('&Quit'),
                      actions,
                      objectName='exitAction',
                      shortcut=self.tr('Ctrl+Q'),
                      statusTip=self.tr('Quit'),
                      triggered=self.close)

        return actions

    def _setupViewActions(self):
        style = self.style()
        actions = QtGui.QActionGroup(self)

        icon = style.standardIcon(QtGui.QStyle.SP_DialogResetButton)
        QtGui.QAction(icon,
                      self.tr('Reset'),
                      actions,
                      objectName='resetAction',
                      statusTip=self.tr('Reset'),
                      triggered=self.onReset)

        QtGui.QAction(actions).setSeparator(True)

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/zoom-in-32.png')
        QtGui.QAction(icon,
                      self.tr('Zoom In'),
                      actions,
                      objectName='zoomInAction',
                      statusTip=self.tr('Zoom In'),
                      shortcut=self.tr('Ctrl++'),
                      triggered=lambda: self.graphicsview.scale(1.2, 1.2))

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/zoom-out-32.png')
        QtGui.QAction(
            icon,
            self.tr('Zoom Out'),
            actions,
            objectName='zoomOutAction',
            statusTip=self.tr('Zoom Out'),
            shortcut=self.tr('Ctrl+-'),
            triggered=lambda: self.graphicsview.scale(1 / 1.2, 1 / 1.2))

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/page-setup-24.png')
        QtGui.QAction(icon,
                      self.tr('Zoom 1:1'),
                      actions,
                      objectName='zoomResetAction',
                      statusTip=self.tr('Zoom 1:1'),
                      triggered=lambda: self.graphicsview.setMatrix(
                          QtGui.QMatrix(1, 0, 0, -1, 0, 0)))

        icon = QtGui.QIcon(
            ':/trolltech/dialogs/qprintpreviewdialog/images/fit-page-32.png')
        QtGui.QAction(
            icon,
            self.tr('Zoom Fit'),
            actions,
            objectName='zoomFitAction',
            statusTip=self.tr('Zoom Fit'),
            #checkable=True,
            triggered=lambda: self.graphicsview.fitInView(
                self.graphicsview.sceneRect(), QtCore.Qt.KeepAspectRatio))

        return actions

    def _setupHelpActions(self):
        actions = QtGui.QActionGroup(self)

        icon = QtGui.QIcon(
            ':/trolltech/styles/commonstyle/images/fileinfo-32.png')
        QtGui.QAction(icon,
                      self.tr('About'),
                      actions,
                      objectName='aboutAction',
                      statusTip=self.tr('About'),
                      triggered=self.about)

        icon = QtGui.QIcon(':/trolltech/qmessagebox/images/qtlogo-64.png')
        QtGui.QAction(icon,
                      self.tr('About Qt'),
                      actions,
                      objectName='aboutQtAction',
                      statusTip=self.tr('About Qt'),
                      triggered=QtGui.QApplication.aboutQt)

        return actions

    @QtCore.Slot()
    def about(self):
        title = self.tr('Qt4 Graphics Draw Example')
        text = [
            '<h1>Graphics Draw</h1>'
            '<p>Example program for the basic Qt4 graphics drawing.</p>',
            '<p>Copyright (C): 2010-2011 '
            '<a href="mailto:[email protected]">'
            'Antonio Valentino<a>.</p>'
        ]
        text = self.tr('\n'.join(text))
        QtGui.QMessageBox.about(self, title, text)

    @QtCore.Slot()
    def reset(self):
        self.scene.clear()
        self.scene.setSceneRect(0, 0, 800, 600)
        self.graphicsview.setTransform(QtGui.QTransform())

    @QtCore.Slot()
    def onReset(self):
        ret = QtGui.QMessageBox.question(
            self, self.tr('Reset'),
            self.tr('Are you sure you want to reset the document?\n'
                    'All changes will be lost.'))
        if ret == QtGui.QMessageBox.Ok:
            self.reset()

    @QtCore.Slot()
    def onOpen(self):
        filters = [
            self.tr('All files (*)'),
        ]
        filters.extend('%s file (*.%s)' % (str(f).upper(), str(f))
                       for f in QtGui.QImageReader.supportedImageFormats())

        filename, filter_ = QtGui.QFileDialog.getOpenFileNameAndFilter(
            self, self.tr('Load picture'),
            QtCore.QDir.home().absolutePath(),
            ';;'.join(filters))  # , filters[1])
        if filename:
            if '.svg' in filename:
                item = QtSvg.QGraphicsSvgItem(filename)
            else:
                image = QtGui.QImage(filename)
                item = QtGui.QGraphicsPixmapItem(image)

            item.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True)
            item.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True)

            self.scene.addItem(item)

    @QtCore.Slot()
    def onSave(self):
        qt4support.imgexport(self.scene, self)

    @QtCore.Slot()
    def onPrint(self):
        qt4support.printObject(self.scene, parent=self)
Ejemplo n.º 3
0
class MainWin(QtWidgets.QMainWindow):
    def __init__(self, parent=None, flags=QtCore.Qt.WindowFlags(0)):
        super(MainWin, self).__init__(parent, flags)

        self.mousemanager = MouseManager(self)

        from gsdview.mousemanager import RubberBandMode
        rubberbandmode = RubberBandMode()
        self.mousemanager.addMode(rubberbandmode)

        def callback(rect):
            print('rect', rect)

        rubberbandmode.rubberBandSeclection.connect(callback)

        self.scene = QtWidgets.QGraphicsScene(self)
        self.graphicsview = QtWidgets.QGraphicsView(self.scene, self)
        self.setCentralWidget(self.graphicsview)

        self.mousemanager.register(self.graphicsview)

        # File Actions
        self.fileactions = self._setupFileActions()

        menu = QtWidgets.QMenu('File', self)
        menu.addActions(self.fileactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtWidgets.QToolBar('File', self)
        toolbar.addActions(self.fileactions.actions())
        self.addToolBar(toolbar)

        # Mouse Actions
        menu = QtWidgets.QMenu('Mouse', self)
        menu.addActions(self.mousemanager.actions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtWidgets.QToolBar('Mouse')
        toolbar.addActions(self.mousemanager.actions.actions())
        self.addToolBar(toolbar)

        # Help action
        self.helpactions = self._setupHelpActions()

        menu = QtWidgets.QMenu('Help', self)
        menu.addActions(self.helpactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtWidgets.QToolBar('Help', self)
        toolbar.addActions(self.helpactions.actions())
        self.addToolBar(toolbar)

        self.resize(700, 500)

    def _setupFileActions(self):
        style = self.style()

        actions = QtWidgets.QActionGroup(self)

        icon = style.standardIcon(QtWidgets.QStyle.SP_DialogOpenButton)
        QtWidgets.QAction(icon, 'Open', actions, triggered=self.openfile)

        icon = style.standardIcon(QtWidgets.QStyle.SP_DialogCloseButton)
        QtWidgets.QAction(icon, 'Close', actions, triggered=self.scene.clear)

        QtWidgets.QAction(actions).setSeparator(True)

        icon = style.standardIcon(QtWidgets.QStyle.SP_DialogCancelButton)
        QtWidgets.QAction(icon, 'Exit', actions, triggered=self.close)

        return actions

    def _setupHelpActions(self):
        actions = QtWidgets.QActionGroup(self)

        icon = QtGui.QIcon(
            ':/trolltech/styles/commonstyle/images/fileinfo-32.png')
        QtWidgets.QAction(icon, 'About', actions, triggered=self.about)

        icon = QtGui.QIcon(':/trolltech/qmessagebox/images/qtlogo-64.png')
        QtWidgets.QAction(icon,
                          'About Qt',
                          actions,
                          triggered=QtWidgets.QApplication.aboutQt)

        return actions

    @QtCore.Slot()
    def openfile(self):
        self.scene.clear()
        self.graphicsview.setTransform(QtGui.QTransform())
        filename = QtWidgets.QFileDialog.getOpenFileName()
        if filename:
            pixmap = QtGui.QPixmap(filename)
            item = self.scene.addPixmap(pixmap)
            self.scene.setSceneRect(item.boundingRect())

    @QtCore.Slot()
    def about(self):
        title = self.tr('MouseManager Example')
        text = [
            '<h1>Mouse Manager</h1>'
            '<p>Example program for the Mouse manager component.</p>',
            '<p>Copyright (C): 2009-2015 '
            '<a href="mailto:[email protected]">'
            'Antonio Valentino'
            '<a>.</p>'
        ]
        text = self.tr('\n'.join(text))
        QtWidgets.QMessageBox.about(self, title, text)
Ejemplo n.º 4
0
class MainWin(QtWidgets.QMainWindow):

    def __init__(self, parent=None, flags=QtCore.Qt.WindowFlags(0)):
        super(MainWin, self).__init__(parent, flags)

        self.mousemanager = MouseManager(self)

        from gsdview.mousemanager import RubberBandMode
        rubberbandmode = RubberBandMode()
        self.mousemanager.addMode(rubberbandmode)

        def callback(rect):
            print('rect', rect)

        rubberbandmode.rubberBandSeclection.connect(callback)

        self.scene = QtWidgets.QGraphicsScene(self)
        self.graphicsview = QtWidgets.QGraphicsView(self.scene, self)
        self.setCentralWidget(self.graphicsview)

        self.mousemanager.register(self.graphicsview)

        # File Actions
        self.fileactions = self._setupFileActions()

        menu = QtWidgets.QMenu('File', self)
        menu.addActions(self.fileactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtWidgets.QToolBar('File', self)
        toolbar.addActions(self.fileactions.actions())
        self.addToolBar(toolbar)

        # Mouse Actions
        menu = QtWidgets.QMenu('Mouse', self)
        menu.addActions(self.mousemanager.actions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtWidgets.QToolBar('Mouse')
        toolbar.addActions(self.mousemanager.actions.actions())
        self.addToolBar(toolbar)

        # Help action
        self.helpactions = self._setupHelpActions()

        menu = QtWidgets.QMenu('Help', self)
        menu.addActions(self.helpactions.actions())
        self.menuBar().addMenu(menu)

        toolbar = QtWidgets.QToolBar('Help', self)
        toolbar.addActions(self.helpactions.actions())
        self.addToolBar(toolbar)

        self.resize(700, 500)

    def _setupFileActions(self):
        style = self.style()

        actions = QtWidgets.QActionGroup(self)

        icon = style.standardIcon(QtWidgets.QStyle.SP_DialogOpenButton)
        QtWidgets.QAction(icon, 'Open', actions, triggered=self.openfile)

        icon = style.standardIcon(QtWidgets.QStyle.SP_DialogCloseButton)
        QtWidgets.QAction(icon, 'Close', actions, triggered=self.scene.clear)

        QtWidgets.QAction(actions).setSeparator(True)

        icon = style.standardIcon(QtWidgets.QStyle.SP_DialogCancelButton)
        QtWidgets.QAction(icon, 'Exit', actions, triggered=self.close)

        return actions

    def _setupHelpActions(self):
        actions = QtWidgets.QActionGroup(self)

        icon = QtGui.QIcon(
            ':/trolltech/styles/commonstyle/images/fileinfo-32.png')
        QtWidgets.QAction(icon, 'About', actions, triggered=self.about)

        icon = QtGui.QIcon(':/trolltech/qmessagebox/images/qtlogo-64.png')
        QtWidgets.QAction(icon, 'About Qt', actions,
                          triggered=QtWidgets.QApplication.aboutQt)

        return actions

    @QtCore.Slot()
    def openfile(self):
        self.scene.clear()
        self.graphicsview.setTransform(QtGui.QTransform())
        filename = QtWidgets.QFileDialog.getOpenFileName()
        if filename:
            pixmap = QtGui.QPixmap(filename)
            item = self.scene.addPixmap(pixmap)
            self.scene.setSceneRect(item.boundingRect())

    @QtCore.Slot()
    def about(self):
        title = self.tr('MouseManager Example')
        text = ['<h1>Mouse Manager</h1>'
                '<p>Example program for the Mouse manager component.</p>',
                '<p>Copyright (C): 2009-2015 '
                '<a href="mailto:[email protected]">'
                'Antonio Valentino'
                '<a>.</p>']
        text = self.tr('\n'.join(text))
        QtWidgets.QMessageBox.about(self, title, text)