#!/usr/bin/python3 import sys import os event_que = [] print( os.getcwd()) try: import lib.zchat as chat print(sys.path) except ModuleNotFoundError: sys.path.insert(0,os.path.dirname(__file__)+"/.." ) print(sys.path) import lib.zchat as chat import tkinter as tk value = 1 data = [] class Event(): def __init__(self,name): self.name=name print("init",self) def event(self,event): global value global event_que #print(self.name,event) #print("event:",[int(event.type),event.num]) lock.acquire_lock() #print(lock.locked()) t = str(time.time())[8:] event_que.append([t,self,event]) lock.release() if int(event.type) == 4: if event.num == 4: value +=1 if event.num == 5: value -=1 #print(value) for e in data: t = e["text"] if ":" in t: t = t.split(":")[0] e["text"] = t +": "+ str(value) class scroll(): def __init__(self,canvas): self.canvas=canvas def config(self,event): canvas = self.canvas canvas.configure(scrollregion=canvas.bbox("all"))#,width=400,height=200) def ScrollFrame(root,width=50,height=100,bd=1,bg="black",scrollbar="xy"): _scrollbar = scrollbar #print("ScrollFrame init",width,height) aframe=tk.Frame(root,relief=tk.GROOVE)#,width=width,height=height,bd=bd) #aframe.place(x=0,y=0) aframe.pack(side="top",fill="both",expand=1) #x=0,y=0) canvas=tk.Canvas(aframe,width=width-24,height=10)#height) if bg == "": bg="orange" canvas["bg"] = bg # "black" #"green" bframe=tk.Frame(canvas,width=width,height=height) bframe["bg"] = "blue" scrollbar_y=tk.Scrollbar(aframe,orient="vertical",command=canvas.yview,width=20) canvas.configure(yscrollcommand=scrollbar_y.set) scrollbar_x=tk.Scrollbar(aframe,orient="horizontal",command=canvas.xview,width=20) canvas.configure(xscrollcommand=scrollbar_x.set) if "x" in _scrollbar: scrollbar_x.pack(side="bottom",fill="x") if "y" in _scrollbar: scrollbar_y.pack(side="right",fill="y") canvas.pack(side="left",expand=1,fill="both") canvas.create_window((0,0),window=bframe,anchor='nw') bframe.bind("<Configure>",scroll(canvas).config) canvas.bind("<Button>",Event("XXX").event) canvas.bind("<Key>",Event("XXX").event) canvas.bind("<KeyRelease>",Event("XXX").event) return bframe #frame = ScrollFrame(root) root = tk.Tk() # set window title root.wm_title("Fixture Editor") i=0 #root.bind("<Button>",Event("M:{}".format(i)).event) #root.bind("<Key>" ,Event("M:{}".format(i)).event) #root.bind("<KeyRelease>",Event("M:{}".format(i)).event) aframe = tk.Frame(root,height=10) #,bg="#fff") aframe.pack(side="top",expand=0,fill="both") aframe.bind("<Button>",Event("H:{}".format(i)).event) aframe.bind("<Key>" ,Event("H:{}".format(i)).event) aframe.bind("<KeyRelease>",Event("H:{}".format(i)).event) i=0 l = tk.Button(aframe,text="MENUE ".format(i+1)) l.grid(row=i,column=0) aframe = tk.Frame(root,height=5,bg="#333") aframe.pack(side="top",expand=0,fill="x") #xframe = ScrollFrame(root,width=300,height=300) xframe = ScrollFrame(root,width=300,height=300,scrollbar="xy") i=0 for x in range(40): for y in range(10): l = tk.Button(xframe,text="Eintrag {}: 0".format(i+1),width=12) l.bind("<Button>",Event(" B1:{}".format(i)).event) #l.bind("<Key>",Event("B2:{}".format(i)).event) #l.bind("<KeyRelease>",Event("B3:{}".format(i)).event) data.append(l) l.grid(row=x,column=y) i+=1 aframe = tk.Frame(root,height=5,bg="#333") aframe.pack(side="top",expand=0,fill="x") bframe = tk.Frame(root ) #,bg="#fff") bframe.pack(side="top",expand=0,fill="both") bframe.bind("<Button>",Event("B:{}".format(i)).event) bframe.bind("<Key>" ,Event("B:{}".format(i)).event) bframe.bind("<KeyRelease>",Event("B:{}".format(i)).event) i=1 l = tk.Button(bframe,text="STATUS BAR {}".format(i+1)) l.grid(row=i,column=0) import _thread as thread import time _start = time.time() def loop(): global event_que time.sleep(1) c = chat.Client(port=51111) i=0 while 1: lock.acquire_lock() #print(lock.locked()) _event_que = event_que[:] event_que = [] lock.release() #print(_event_que) for i in _event_que: t = str(time.time())[7:] t = float(t) print(i) t1 = float(i[0]) print("d:",round(t1-t,3)) c.send(str(i[0]).encode("ascii")) #c.send(s.encode("ascii")) #s = "hi {}".format(i) #print(s) #c.send(s.encode("ascii")) #i+=1 #time.sleep(1) #r=c.read() #print(r) time.sleep(0.02) thread.start_new_thread(loop,()) lock = thread.allocate_lock() if 1: # lock example print(lock.locked()) lock.acquire_lock() print(lock.locked()) lock.release() print(lock.locked()) # show window root.geometry("400x500") #root.width=400 #root.config({"height":400}) #root.config(width=360, height=315) #root.itemconfigure(height=400) #root["height"] = 400 root.mainloop()