EXEC.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. import json
  2. import time
  3. import sys
  4. import tkinter as tk
  5. import traceback
  6. import _thread as thread
  7. import __main__ as MAIN
  8. sys.path.insert(0,"/opt/LibreLight/Xdesk/")
  9. IS_GUI = 0
  10. import tkgui.draw as draw
  11. #import lib.mytklib as mytklib
  12. import lib.libtk as libtk
  13. #import lib.tkevent as tkevent
  14. #import lib.fixlib as fixlib
  15. from lib.cprint import cprint
  16. try:
  17. import memcache
  18. mc = memcache.Client(['127.0.0.1:11211'], debug=0)
  19. except:
  20. mc = None
  21. class Refresher():
  22. def __init__(self,*arg,**args):
  23. print(self,"__init__",arg,args)
  24. def reset(*arg,**args):
  25. print(self,"reset",arg,args)
  26. class MASTER():
  27. def __init__(self,*arg,**args):
  28. print(self,"__init__",arg,args)
  29. #self.refresh_fix = Refresher()
  30. def refresh_fix(self,*arg,**args):# = Refresher()
  31. print(self,"refresh_fix",arg,args)
  32. def refresh_fix(*arg,**args):
  33. print("refresh_fix",arg,args)
  34. class Refresher_fix():
  35. def __init__(self,*arg,**args):
  36. print(self,"init",arg,args)
  37. def reset(self,*arg,**args):
  38. print(self,"reset",arg,args)
  39. refresher_fix = Refresher_fix()
  40. class Modes():
  41. def __init__(self,*arg,**args):
  42. print("refresh_fix",arg,args)
  43. def val(self,*arg,**args):
  44. print("val",arg,args)
  45. master = MASTER() #{}
  46. modes = Modes()
  47. import tkinter as tk
  48. class Exec():
  49. def __init__(self):
  50. self.val_exec = {}
  51. for i in range(512):
  52. k=i #"ABC-{}".format(i+1)
  53. self.val_exec[k] = {"NAME":"XX"}
  54. EXEC = Exec()
  55. class Gui():
  56. def __init__(self):
  57. self.elem_exec = []
  58. def _refresh_exec(self,*arg,**args):
  59. print("Gui",arg,args)
  60. #_XX +=1
  61. # _nr_ok = 0
  62. nr = 14-1
  63. jdata = {}
  64. keys = []
  65. labels = []
  66. if 10:
  67. nr = 0
  68. for i in range(512):
  69. nr = i #+1
  70. label = "err-{}".format(nr)
  71. try:
  72. label = mc.get("EXEC-LABEL-"+str(nr)) #,json.dumps(index))
  73. except Exception as e:
  74. print(" ER1R mc...",e)
  75. labels.append(label)
  76. try:
  77. y = mc.get("EXEC-"+str(nr)) #,json.dumps(index))
  78. jdata = json.loads(y)
  79. keys = jdata.keys()
  80. except Exception as e:
  81. print(" ER2R mc...",e,nr)
  82. #for nr in EXEC.val_exec:
  83. #for nr in range(200):
  84. for nr,b in enumerate( self.elem_exec): #[nr]
  85. out = {} # default
  86. out["fx"] = ""
  87. out["bg"] = "grey"
  88. out["ba"] = "grey"
  89. out["fg"] = "#999" #black" #grey"
  90. out["text"] = "? "+str(nr+1)
  91. try:
  92. out["text"] = "GO\n"+str(labels[nr])
  93. if len(labels[nr]) >= 3:
  94. out["bg"] = "orange" #yellow"
  95. out["fg"] = "black" #grey"
  96. except Exception as e:
  97. print(" ER4R",e,nr)
  98. time.sleep(0.001)
  99. #xout["fx"] = fx_color
  100. #xout["bg"] = _bg
  101. #xout["ba"] = _ba
  102. #xout["fg"] = _fg
  103. #out["text"] = _text
  104. #return out
  105. cfg = out #get_exec_btn_cfg(nr)
  106. b = self.elem_exec[nr]
  107. b.configure(fg=cfg["fg"],bg=cfg["bg"],activebackground=cfg["ba"],text=cfg["text"],fx=cfg["fx"])
  108. def exec_go(*arg,**args):
  109. print("Gui",arg,args)
  110. gui = Gui()
  111. root = tk.Tk()
  112. #root.withdraw() # do not draw
  113. #root.resizable(1,1)
  114. root.tk_setPalette(background='#bbb', foreground='black', activeBackground='#aaa', activeForeground="black")
  115. defaultFont = tk.font.nametofont("TkDefaultFont")
  116. #cprint(defaultFont)
  117. defaultFont.configure(family="FreeSans",
  118. size=10,
  119. weight="bold")
  120. # MAIN MENUE
  121. #try:
  122. # self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"main.png"))
  123. #except Exception as e:
  124. # print(" Exception GUIWindowContainer.__init__",e)
  125. #xframe=root
  126. xframe = libtk.ScrollFrame(root,width=820,height=400,bd=1,bg="black",head=None,foot=None)
  127. draw.draw_exec(gui,xframe,EXEC)
  128. #xframe.pack()
  129. root.title("DEMO TK-EXEC 2")
  130. root.mainloop()