import magictk import random from multiprocessing import Process if __name__ == "__main__": win = magictk.Window() frame = magictk.Frame(win) magictk.Button(frame, text="Default", func=lambda s: print("Btn 1")).pack(side='left') magictk.ButtonFill(frame, text="Primary", func=lambda s: print("Btn 2")).pack(side='left') magictk.ButtonFill(frame, color_type="success", text="Success", func=lambda s: print("Btn 3")).pack(side='left') magictk.ButtonFill(frame, color_type="info", text="Info", func=lambda s: print("Btn 4")).pack(side='left') magictk.ButtonFill(frame, color_type="warning", text="Warning", func=lambda s: print("Btn 5")).pack(side='left') magictk.ButtonFill(frame, color_type="danger", text="Danger", func=lambda s: print("Btn 6")).pack(side='left') frame.pack() frame2 = magictk.Frame(win) magictk.Select(frame2, text="Select", items=[ f"Option {i}" for i in range(1, 6)]).pack(side='left') magictk.Select(frame2, text="Select(1000 items)", items=[ f"Option {i}" for i in range(1, 1001)]).pack(side='left') obj1 = magictk.MenuObjs() for i in range(1, 10): obj1.addmenu(f"Option {i}", lambda s, t: print(i)) magictk.Button(frame2, text="Menu", func=lambda s: magictk.Menu(win, menuobj=obj1), w=60).pack() frame2.pack() frame3 = magictk.Frame(win) groups = magictk.RadioGroup() magictk.Checkbox(frame3, text="Radio 1", w=100, group=groups).pack(side='left') magictk.Checkbox(frame3, text="Radio 2", w=100, group=groups).pack(side='left') magictk.Checkbox(frame3, text="Radio 3", w=100, group=groups).pack(side='left') magictk.Checkbox(frame3, text="Radio 4", w=100, group=groups).pack(side='left') frame3.pack() frame4 = magictk.Frame(win) magictk.Checkbox(frame4, text="Option 1", w=100).pack(side='left') magictk.Checkbox(frame4, text="Option 2", w=100).pack(side='left') frame4.pack() frame5 = magictk.Frame(win) pb = magictk.ProgressBar(frame5) pb.pack(side='left') magictk.Button(frame5, text="+", func=lambda s: pb.add_progress(0.1), w=30).pack(side='left') magictk.Button(frame5, text="-", func=lambda s: pb.add_progress(-0.1), w=30).pack(side='left') magictk.Button(frame5, text="++", func=lambda s: pb.add_progress(0.3), w=40).pack(side='left') magictk.Button(frame5, text="--", func=lambda s: pb.add_progress(-0.3), w=40).pack(side='left') frame5.pack() frame6 = magictk.Frame(win) def kaoji(): def test(*args): p = [] size = 10000000 for i in range(1, size): if (i % 100000 == 0): print(f"make data... {i*100//size}%") p.append(random.randint(1, size)) print("sort...") p.sort() print("finish!") del p ts = Process(target=test) ts.start() magictk.Button(frame6, text="Performance Test", func=lambda s: kaoji(), w=130).pack(side='left') frame6.pack() frame7 = magictk.Frame(win) magictk.Entry(frame7, w=200).pack(side='left') frame7.pack() frame8 = magictk.Container(win, h=100, container_h=30*6*2) for i in range(2): magictk.Button(frame8, text="Default", func=lambda s: print("Btn 1")).pack() magictk.ButtonFill(frame8, text="Primary", func=lambda s: print("Btn 2")).pack() magictk.ButtonFill(frame8, color_type="success", text="Success", func=lambda s: print("Btn 3")).pack() magictk.ButtonFill(frame8, color_type="info", text="Info", func=lambda s: print("Btn 4")).pack() magictk.ButtonFill(frame8, color_type="warning", text="Warning", func=lambda s: print("Btn 5")).pack() magictk.ButtonFill(frame8, color_type="danger", text="Danger", func=lambda s: print("Btn 6")).pack() frame8.pack(expand="y") win.mainloop()