Esempio n. 1
0
    def init(self):
        self.setWindowIcon(QIcon("paint.ico"))

        self.posIndicator = QLabel("Coord", self)
        self.posIndicator.move(50, 50)
        self.posIndicator.setFixedWidth(100)

        self.height = 600
        self.width = 800
        self.color = QColor(0, 0, 0)

        self.resize(self.width, self.height)
        self.move(300, 300)
        self.img = QImage(self.width, self.height, QImage.Format_RGB32)
        self.img.fill(Qt.white)
        self.tmpimg = QImage(self.img)

        self.idCount = 0

        self.status = "NONE"
        self.points = []
        self.mousePos = []
        self.cmds = []
        self.box = []
        self.dot = []
        self.choosing = {}

        menubar = self.menuBar()

        resetCanvasAction = QAction("&resetCanvas", self)
        resetCanvasAction.triggered.connect(self.resetCanvas)
        saveCanvasAction = QAction("&saveCanvas", self)
        saveCanvasAction.triggered.connect(self.saveCanvas)

        canvasMenu = menubar.addMenu("&Canvas")
        canvasMenu.addAction(resetCanvasAction)
        canvasMenu.addAction(saveCanvasAction)

        drawNewLineDDA = QAction("&DDA", self)
        drawNewLineDDA.name = "DLDDA"
        drawNewLineDDA.triggered.connect(self.DRAW)

        drawNewLineBresenham = QAction("&Bresenham", self)
        drawNewLineBresenham.name = "DLBSH"
        drawNewLineBresenham.triggered.connect(self.DRAW)

        drawPolygonDDA = QAction("&DDA", self)
        drawPolygonDDA.name = "DPDDA"
        drawPolygonDDA.triggered.connect(self.DRAW)

        drawPolygonBresenham = QAction("&Bresenham", self)
        drawPolygonBresenham.name = "DPBSH"
        drawPolygonBresenham.triggered.connect(self.DRAW)

        drawEllipse = QAction("&Ellipse", self)
        drawEllipse.name = "DE"
        drawEllipse.triggered.connect(self.DRAW)

        drawCurveBezier = QAction("&Bezier", self)
        drawCurveBezier.name = "DCBZ"
        drawCurveBezier.triggered.connect(self.DRAW)

        drawCurveBspline = QAction("&B-spline", self)
        drawCurveBspline.name = "DCBS"
        drawCurveBspline.triggered.connect(self.DRAW)

        drawMenu = menubar.addMenu("&Drawing")
        drawNewLineMenu = drawMenu.addMenu("&Line")
        drawNewLineMenu.addAction(drawNewLineDDA)
        drawNewLineMenu.addAction(drawNewLineBresenham)
        drawPolygonMenu = drawMenu.addMenu("&Polygon")
        drawPolygonMenu.addAction(drawPolygonDDA)
        drawPolygonMenu.addAction(drawPolygonBresenham)
        drawMenu.addAction(drawEllipse)
        drawCurveMenu = drawMenu.addMenu("&Curve")
        drawCurveMenu.addAction(drawCurveBezier)
        drawCurveMenu.addAction(drawCurveBspline)

        oprTranslate = QAction("&Translate", self)
        oprTranslate.name = "T"
        oprTranslate.triggered.connect(self.OPR)

        oprRotate = QAction("&Rotate", self)
        oprRotate.name = "R"
        oprRotate.triggered.connect(self.OPR)

        oprScale = QAction("&Scale", self)
        oprScale.name = "S"
        oprScale.triggered.connect(self.OPR)

        oprClipCohen = QAction("&Cohen-Sutherland", self)
        oprClipCohen.name = "CC"
        oprClipCohen.triggered.connect(self.CLIP)

        oprClipLiang = QAction("&Liang-Barsky", self)
        oprClipLiang.name = "CL"
        oprClipLiang.triggered.connect(self.CLIP)

        oprMenu = menubar.addMenu("&Operations")
        oprMenu.addAction(oprTranslate)
        oprMenu.addAction(oprRotate)
        oprMenu.addAction(oprScale)
        oprClipMenu = oprMenu.addMenu("&Clip")
        oprClipMenu.addAction(oprClipCohen)
        oprClipMenu.addAction(oprClipLiang)

        pickColor = QAction("&Color", self)
        pickColor.triggered.connect(self.pickColor)

        menubar.addAction(pickColor)