Advertisement
Ober3550

Buttons

Mar 24th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. from turtle import *
  2. from time import sleep
  3.  
  4. setup(1.0,1.0,-1,0)
  5. turtle = Turtle()
  6. screen = Screen()
  7. click = [0,2000]
  8. turtle.hideturtle()
  9.  
  10. class Button():
  11. def __init__(self,fun='print("button")',name="Button",pos=[0,0],size=[100,20],fillcolor="lightgrey",textcolor="black",textfont=("Arial", 8, "normal")):
  12. self.fun = fun
  13. self.pos = pos
  14. self.size = size
  15. self.name = name
  16. self.fillcolor = fillcolor
  17. self.textcolor = textcolor
  18. self.textfont = textfont
  19. self.draw()
  20.  
  21. def draw(self):
  22. turtle.penup()
  23. turtle.goto(self.pos)
  24. turtle.begin_fill()
  25. turtle.pendown()
  26. turtle.color(self.fillcolor)
  27. turtle.goto(self.pos[0]+self.size[0],self.pos[1])
  28. turtle.goto(self.pos[0]+self.size[0],self.pos[1]+self.size[1])
  29. turtle.goto(self.pos[0],self.pos[1]+self.size[1])
  30. turtle.goto(self.pos)
  31. turtle.end_fill()
  32. turtle.penup()
  33. turtle.goto(self.pos[0]+self.size[0]/2,self.pos[1]+self.size[1]/2-self.textfont[1])
  34. turtle.color(self.textcolor)
  35. turtle.write(self.name,False,"center",self.textfont)
  36. turtle.penup()
  37.  
  38. def onclick(self):
  39. if click[0]>self.pos[0] and click[0]<self.pos[0]+self.size[0] and click[1]>self.pos[1] and click[1]<self.pos[1]+self.size[1]:
  40. eval(self.fun)
  41.  
  42.  
  43. def clicked(x,y):
  44. global click
  45. click = [x,y]
  46.  
  47. def release(x,y):
  48. global click
  49. click = [0,0]
  50.  
  51. def checkobjects():
  52. button.onclick()
  53.  
  54. tracer(False)
  55. button = Button('print("Test")',"Test3",[-300,100],[200,50])
  56. button2 = Button()
  57.  
  58. while True:
  59. sleep(1/60)
  60. screen.onscreenclick(clicked)
  61. checkobjects()
  62. click = [0,2000]
  63. update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement