egrid.py 5.0 KB

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