Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. import sys
  2. from PyQt5 import QtWidgets, uic, QtCore
  3. Ui_MainWindow, QtBaseClass = uic.loadUiType("Week6.ui")
  4. from Rectangle import CFilledRectangle
  5. from Line import CLine
  6. from PyQt5.QtGui import QBrush, QPen
  7. from PyQt5.QtCore import Qt
  8. from Rechtelijn import CRecht
  9.  
  10.  
  11. class MyApp(QtWidgets.QMainWindow):
  12. def __init__(self):
  13. super(MyApp, self).__init__()
  14. self.ui = Ui_MainWindow()
  15. self.ui.setupUi(self)
  16.  
  17. self._brush = QBrush(Qt.black, Qt.SolidPattern)
  18. self._pen = QPen(Qt.black)
  19.  
  20. self._rechthoek = 1
  21. self._potlood = 0
  22. self._rechtlijn = 0
  23.  
  24. self._scene = QtWidgets.QGraphicsScene()
  25. self._scene.setSceneRect(0,0,100,100)
  26. self.ui.view.setScene(self._scene)
  27.  
  28. self.ui.view.mousePressEvent = self.MouseDown
  29. self.ui.view.mouseMoveEvent = self.viewMouseMove
  30. self.ui.btngroen.clicked.connect(self.groen)
  31. self.ui.btnrood.clicked.connect(self.rood)
  32. self.ui.btnblauw.clicked.connect(self.blauw)
  33. self.ui.btnpotlood.clicked.connect(self.potlood)
  34. self.ui.btnrechthoek.clicked.connect(self.rechthoek)
  35. self.ui.btnclear.clicked.connect(self.clear)
  36. self.ui.btnlijn.clicked.connect(self.rechtelijn)
  37. self.ui.btnredraw.clicked.connect(self.redraw)
  38. self.ui.btnundo.clicked.connect(self.undo)
  39. self.ui.btnredo.clicked.connect(self.redo)
  40.  
  41. self._list = []
  42. self._list1=[]
  43.  
  44. self._coordinaat=[]
  45.  
  46. def MouseDown(self, event):
  47. # mapToScene zet muiscoöridnaten om in scene coördinaten
  48. point = self.ui.view.mapToScene(event.pos())
  49. self.x = point.x()
  50. self.y = point.y()
  51. if self._rechthoek == 1:
  52. figuur = CFilledRectangle(self.x, self.y, 50, 30, self._brush)
  53. self._list.append(figuur)
  54. figuur.draw(self._scene)
  55. if self._potlood == 1:
  56. self._line = CLine(self._pen)
  57. self._line.add(self.x, self.y)
  58.  
  59. if self._rechtlijn == 1:
  60. listlijn = CRecht(self.x, self.y, self._pen)
  61. self._list.append(listlijn)
  62. listlijn.draw(self._scene)
  63.  
  64.  
  65.  
  66. def viewMouseMove(self, event):
  67. if self._potlood ==1:
  68. point = self.ui.view.mapToScene(event.pos())
  69. x = point.x()
  70. y = point.y()
  71.  
  72. if event.buttons() == QtCore.Qt.LeftButton:
  73. self._line.add(x,y)
  74. self._line.draw(self._scene)
  75. self._list.append(self._line)
  76.  
  77.  
  78. def groen(self):
  79. self._brush = QBrush(Qt.green, Qt.SolidPattern)
  80. self._pen = QPen(Qt.green)
  81.  
  82. def blauw(self):
  83. self._brush = QBrush(Qt.blue, Qt.SolidPattern)
  84. self._pen = QPen(Qt.blue)
  85.  
  86. def rood(self):
  87. self._brush = QBrush(Qt.red, Qt.SolidPattern)
  88. self._pen = QPen(Qt.red)
  89.  
  90. def potlood(self):
  91. self._rechthoek = 0
  92. self._potlood = 1
  93. self._rechtlijn = 0
  94.  
  95. def rechthoek(self):
  96. self._rechthoek = 1
  97. self._potlood = 0
  98. self._rechtlijn = 0
  99.  
  100. def rechtelijn(self):
  101. self._rechthoek = 0
  102. self._potlood = 0
  103. self._rechtlijn = 1
  104.  
  105. def clear(self):
  106. self._scene.clear()
  107.  
  108. def redraw(self):
  109. for i in self._list:
  110. i.draw(self._scene)
  111.  
  112. def undo(self):
  113. self._scene.clear()
  114. #self._list1 = self._list
  115. self._laatste = self._list[-1]
  116.  
  117. del self._list[-1]
  118.  
  119. for i in self._list:
  120. i.draw(self._scene)
  121.  
  122.  
  123. def redo(self):
  124. self._scene.clear()
  125. self._list.append(self._laatste)
  126.  
  127. for i in self._list:
  128. i.draw(self._scene)
  129.  
  130.  
  131.  
  132.  
  133. if __name__ == "__main__":
  134. app = 0 # lost Kernal died probeem op bij herhaald opstarten
  135. app = QtWidgets.QApplication(sys.argv)
  136. window = MyApp()
  137. window.show()
  138. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement