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)