egrid.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. #!/usr/bin/python3
  2. import sys
  3. import os
  4. event_que = []
  5. print( os.getcwd())
  6. try:
  7. import lib.zchat as chat
  8. print(sys.path)
  9. except ModuleNotFoundError:
  10. sys.path.insert(0,os.path.dirname(__file__)+"/.." )
  11. print(sys.path)
  12. import lib.zchat as chat
  13. import tkinter as tk
  14. value = 1
  15. data = []
  16. class Event():
  17. def __init__(self,name):
  18. self.name=name
  19. print("init",self)
  20. def event(self,event):
  21. global value
  22. global event_que
  23. #print(self.name,event)
  24. #print("event:",[int(event.type),event.num])
  25. lock.acquire_lock()
  26. #print(lock.locked())
  27. t = str(time.time())[8:]
  28. event_que.append([t,self,event])
  29. lock.release()
  30. if int(event.type) == 4:
  31. if event.num == 4:
  32. value +=1
  33. if event.num == 5:
  34. value -=1
  35. #print(value)
  36. for e in data:
  37. t = e["text"]
  38. if ":" in t:
  39. t = t.split(":")[0]
  40. e["text"] = t +": "+ str(value)
  41. class scroll():
  42. def __init__(self,canvas):
  43. self.canvas=canvas
  44. def config(self,event):
  45. canvas = self.canvas
  46. canvas.configure(scrollregion=canvas.bbox("all"))#,width=400,height=200)
  47. def ScrollFrame(root,width=50,height=100,bd=1,bg="black",scrollbar="xy"):
  48. _scrollbar = scrollbar
  49. #print("ScrollFrame init",width,height)
  50. aframe=tk.Frame(root,relief=tk.GROOVE)#,width=width,height=height,bd=bd)
  51. #aframe.place(x=0,y=0)
  52. aframe.pack(side="top",fill="both",expand=1) #x=0,y=0)
  53. canvas=tk.Canvas(aframe,width=width-24,height=10)#height)
  54. if bg == "":
  55. bg="orange"
  56. canvas["bg"] = bg # "black" #"green"
  57. bframe=tk.Frame(canvas,width=width,height=height)
  58. bframe["bg"] = "blue"
  59. scrollbar_y=tk.Scrollbar(aframe,orient="vertical",command=canvas.yview,width=20)
  60. canvas.configure(yscrollcommand=scrollbar_y.set)
  61. scrollbar_x=tk.Scrollbar(aframe,orient="horizontal",command=canvas.xview,width=20)
  62. canvas.configure(xscrollcommand=scrollbar_x.set)
  63. if "x" in _scrollbar:
  64. scrollbar_x.pack(side="bottom",fill="x")
  65. if "y" in _scrollbar:
  66. scrollbar_y.pack(side="right",fill="y")
  67. canvas.pack(side="left",expand=1,fill="both")
  68. canvas.create_window((0,0),window=bframe,anchor='nw')
  69. bframe.bind("<Configure>",scroll(canvas).config)
  70. canvas.bind("<Button>",Event("XXX").event)
  71. canvas.bind("<Key>",Event("XXX").event)
  72. canvas.bind("<KeyRelease>",Event("XXX").event)
  73. return bframe
  74. #frame = ScrollFrame(root)
  75. root = tk.Tk()
  76. # set window title
  77. root.wm_title("Fixture Editor")
  78. i=0
  79. #root.bind("<Button>",Event("M:{}".format(i)).event)
  80. #root.bind("<Key>" ,Event("M:{}".format(i)).event)
  81. #root.bind("<KeyRelease>",Event("M:{}".format(i)).event)
  82. aframe = tk.Frame(root,height=10) #,bg="#fff")
  83. aframe.pack(side="top",expand=0,fill="both")
  84. aframe.bind("<Button>",Event("H:{}".format(i)).event)
  85. aframe.bind("<Key>" ,Event("H:{}".format(i)).event)
  86. aframe.bind("<KeyRelease>",Event("H:{}".format(i)).event)
  87. i=0
  88. l = tk.Button(aframe,text="MENUE ".format(i+1))
  89. l.grid(row=i,column=0)
  90. aframe = tk.Frame(root,height=5,bg="#333")
  91. aframe.pack(side="top",expand=0,fill="x")
  92. #xframe = ScrollFrame(root,width=300,height=300)
  93. xframe = ScrollFrame(root,width=300,height=300,scrollbar="xy")
  94. i=0
  95. for x in range(40):
  96. for y in range(10):
  97. l = tk.Button(xframe,text="Eintrag {}: 0".format(i+1),width=12)
  98. l.bind("<Button>",Event(" B1:{}".format(i)).event)
  99. #l.bind("<Key>",Event("B2:{}".format(i)).event)
  100. #l.bind("<KeyRelease>",Event("B3:{}".format(i)).event)
  101. data.append(l)
  102. l.grid(row=x,column=y)
  103. i+=1
  104. aframe = tk.Frame(root,height=5,bg="#333")
  105. aframe.pack(side="top",expand=0,fill="x")
  106. bframe = tk.Frame(root ) #,bg="#fff")
  107. bframe.pack(side="top",expand=0,fill="both")
  108. bframe.bind("<Button>",Event("B:{}".format(i)).event)
  109. bframe.bind("<Key>" ,Event("B:{}".format(i)).event)
  110. bframe.bind("<KeyRelease>",Event("B:{}".format(i)).event)
  111. i=1
  112. l = tk.Button(bframe,text="STATUS BAR {}".format(i+1))
  113. l.grid(row=i,column=0)
  114. import _thread as thread
  115. import time
  116. _start = time.time()
  117. def loop():
  118. global event_que
  119. time.sleep(1)
  120. c = chat.Client(port=51111)
  121. i=0
  122. while 1:
  123. lock.acquire_lock()
  124. #print(lock.locked())
  125. _event_que = event_que[:]
  126. event_que = []
  127. lock.release()
  128. #print(_event_que)
  129. for i in _event_que:
  130. t = str(time.time())[7:]
  131. t = float(t)
  132. print(i)
  133. t1 = float(i[0])
  134. print("d:",round(t1-t,3))
  135. c.send(str(i[0]).encode("ascii"))
  136. #c.send(s.encode("ascii"))
  137. #s = "hi {}".format(i)
  138. #print(s)
  139. #c.send(s.encode("ascii"))
  140. #i+=1
  141. #time.sleep(1)
  142. #r=c.read()
  143. #print(r)
  144. time.sleep(0.02)
  145. thread.start_new_thread(loop,())
  146. lock = thread.allocate_lock()
  147. if 1:
  148. # lock example
  149. print(lock.locked())
  150. lock.acquire_lock()
  151. print(lock.locked())
  152. lock.release()
  153. print(lock.locked())
  154. # show window
  155. root.geometry("400x500")
  156. #root.width=400
  157. #root.config({"height":400})
  158. #root.config(width=360, height=315)
  159. #root.itemconfigure(height=400)
  160. #root["height"] = 400
  161. root.mainloop()