plateau.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. from test_graphiques import Ui_Form
  2. import sys, os, time
  3. from PyQt4 import QtCore,QtGui, QtOpenGL
  4. class Plateau(QtGui.QWidget):
  5. def __init__(self):
  6. QtGui.QWidget.__init__(self)
  7. self.ui = Ui_Form()
  8. self.ui.setupUi(self)
  9. self.scene = QtGui.QGraphicsScene()
  10. self.ui.view.setScene(self.scene)
  11. self.scene.setSceneRect(0,0,self.ui.view.width(),self.ui.view.height())
  12. self.ui.view.setViewport(QtOpenGL.QGLWidget())
  13. self.cases = {}
  14. self.majQuadrillage(10,10)
  15. self.nouveauPion()
  16. def majQuadrillage(self, x, y):
  17. #autre essai avec des rectancgles
  18. if x > 0 and y > 0 and x == int(x) and y == int(y):
  19. i = 1
  20. lPlateau = self.ui.view.width()
  21. hPlateau = self.ui.view.height()
  22. self.cCase = int(lPlateau / x) #cote de la case
  23. pinceau = QtGui.QPen()
  24. pinceau.setColor(QtGui.QColor(85, 85, 85, 85))
  25. pinceau.setWidth(1)
  26. #cree les cases
  27. for i in range(x):
  28. for j in range(y):
  29. self.cases[(i,j)] = QtGui.QGraphicsRectItem(i*self.cCase, j*self.cCase, self.cCase, self.cCase)
  30. self.cases[(i,j)].setPen(pinceau)
  31. self.scene.addItem(self.cases[(i,j)])
  32. def nouveauPion(self):
  33. #creation d'un pion
  34. pinceau = QtGui.QPen()
  35. pinceau.setColor(QtGui.QColor(0, 0, 0, 120))
  36. pinceau.setWidth(2)
  37. self.pion = QtGui.QGraphicsEllipseItem(0, 0, self.cCase, self.cCase)
  38. self.pion.setPen(pinceau)
  39. self.pion.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
  40. self.pion.setFlag(QtGui.QGraphicsItem.ItemIsFocusable)
  41. self.pion.setBrush(QtGui.QColor(255, 0, 0, 150))
  42. #options graphiques
  43. painter = QtGui.QPainter()
  44. painter.setRenderHints(QtGui.QPainter.Antialiasing, True)
  45. self.pion.paint(painter, 1)
  46. #ombre
  47. self.shadow = QtGui.QGraphicsDropShadowEffect()
  48. self.shadow.setColor(QtGui.QColor(50, 50, 50, 200))
  49. self.shadow.setXOffset(1)
  50. self.shadow.setYOffset(1)
  51. self.shadow.setBlurRadius(3)
  52. self.pion.setGraphicsEffect(self.shadow)
  53. self.shadow.setEnabled(True)
  54. #recentrage
  55. #self.pion.mousePressEvent(self.test())
  56. self.pion.setAcceptHoverEvents(True)
  57. #self.pion.mouseReleaseEvent(self.test())
  58. self.scene.addItem(self.pion)
  59. def main():
  60. app = QtGui.QApplication(sys.argv)
  61. window = Main()
  62. window.show()
  63. sys.exit(app.exec_())
  64. if __name__ == "__main__":
  65. main()