Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from PyQt5 import QtWidgets, uic, QtCore
- Ui_MainWindow, QtBaseClass = uic.loadUiType("Week6.ui")
- from Rectangle import CFilledRectangle
- from Line import CLine
- from PyQt5.QtGui import QBrush, QPen
- from PyQt5.QtCore import Qt
- from Rechtelijn import CRecht
- class MyApp(QtWidgets.QMainWindow):
- def __init__(self):
- super(MyApp, self).__init__()
- self.ui = Ui_MainWindow()
- self.ui.setupUi(self)
- self._brush = QBrush(Qt.black, Qt.SolidPattern)
- self._pen = QPen(Qt.black)
- self._rechthoek = 1
- self._potlood = 0
- self._rechtlijn = 0
- self._scene = QtWidgets.QGraphicsScene()
- self._scene.setSceneRect(0,0,100,100)
- self.ui.view.setScene(self._scene)
- self.ui.view.mousePressEvent = self.MouseDown
- self.ui.view.mouseMoveEvent = self.viewMouseMove
- self.ui.btngroen.clicked.connect(self.groen)
- self.ui.btnrood.clicked.connect(self.rood)
- self.ui.btnblauw.clicked.connect(self.blauw)
- self.ui.btnpotlood.clicked.connect(self.potlood)
- self.ui.btnrechthoek.clicked.connect(self.rechthoek)
- self.ui.btnclear.clicked.connect(self.clear)
- self.ui.btnlijn.clicked.connect(self.rechtelijn)
- self.ui.btnredraw.clicked.connect(self.redraw)
- self.ui.btnundo.clicked.connect(self.undo)
- self.ui.btnredo.clicked.connect(self.redo)
- self._list = []
- self._list1=[]
- self._coordinaat=[]
- def MouseDown(self, event):
- # mapToScene zet muiscoöridnaten om in scene coördinaten
- point = self.ui.view.mapToScene(event.pos())
- self.x = point.x()
- self.y = point.y()
- if self._rechthoek == 1:
- figuur = CFilledRectangle(self.x, self.y, 50, 30, self._brush)
- self._list.append(figuur)
- figuur.draw(self._scene)
- if self._potlood == 1:
- self._line = CLine(self._pen)
- self._line.add(self.x, self.y)
- if self._rechtlijn == 1:
- listlijn = CRecht(self.x, self.y, self._pen)
- self._list.append(listlijn)
- listlijn.draw(self._scene)
- def viewMouseMove(self, event):
- if self._potlood ==1:
- point = self.ui.view.mapToScene(event.pos())
- x = point.x()
- y = point.y()
- if event.buttons() == QtCore.Qt.LeftButton:
- self._line.add(x,y)
- self._line.draw(self._scene)
- self._list.append(self._line)
- def groen(self):
- self._brush = QBrush(Qt.green, Qt.SolidPattern)
- self._pen = QPen(Qt.green)
- def blauw(self):
- self._brush = QBrush(Qt.blue, Qt.SolidPattern)
- self._pen = QPen(Qt.blue)
- def rood(self):
- self._brush = QBrush(Qt.red, Qt.SolidPattern)
- self._pen = QPen(Qt.red)
- def potlood(self):
- self._rechthoek = 0
- self._potlood = 1
- self._rechtlijn = 0
- def rechthoek(self):
- self._rechthoek = 1
- self._potlood = 0
- self._rechtlijn = 0
- def rechtelijn(self):
- self._rechthoek = 0
- self._potlood = 0
- self._rechtlijn = 1
- def clear(self):
- self._scene.clear()
- def redraw(self):
- for i in self._list:
- i.draw(self._scene)
- def undo(self):
- self._scene.clear()
- #self._list1 = self._list
- self._laatste = self._list[-1]
- del self._list[-1]
- for i in self._list:
- i.draw(self._scene)
- def redo(self):
- self._scene.clear()
- self._list.append(self._laatste)
- for i in self._list:
- i.draw(self._scene)
- if __name__ == "__main__":
- app = 0 # lost Kernal died probeem op bij herhaald opstarten
- app = QtWidgets.QApplication(sys.argv)
- window = MyApp()
- window.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement