def __init__(self, gameInfo: GameInfo): top = tk.Toplevel(gameInfo.top) page_parts4_menusetting.init(gameInfo, top) page_parts4_menusetting.set_Tk_var() _bgcolor = '#d9d9d9' # X11 color: 'gray85' _fgcolor = '#000000' # X11 color: 'black' _compcolor = '#d9d9d9' # X11 color: 'gray85' _ana1color = '#d9d9d9' # X11 color: 'gray85' _ana2color = '#ececec' # Closest X11 color: 'gray92' self.style = ttk.Style() if platform == "win32": self.style.theme_use('winnative') self.style.configure('.', background=_bgcolor) self.style.configure('.', foreground=_fgcolor) self.style.configure('.', font="TkDefaultFont") self.style.map('.', background=[('selected', _compcolor), ('active', _ana2color)]) top.geometry("460x370") top.title("设置") top.configure(background="#d9d9d9") top.configure(highlightbackground="#d9d9d9") top.configure(highlightcolor="black") self.menubar = tk.Menu(top, font="TkMenuFont", bg=_bgcolor, fg=_fgcolor) top.configure(menu=self.menubar) self.TLabelframe_ld = ttk.Labelframe(top) self.TLabelframe_ld.place(relx=0.043, rely=0.054, relheight=0.716, relwidth=0.891) self.TLabelframe_ld.configure(relief='groove') self.TLabelframe_ld.configure(text='''难度''') self.TLabelframe_ld.configure(relief='groove') self.TLabelframe_ld.configure(width=410) self.TFrame_1 = ttk.Frame(self.TLabelframe_ld) self.TFrame_1.place(relx=0.073, rely=0.075, relheight=0.283, relwidth=0.378, bordermode='ignore') self.TFrame_1.configure(relief='ridge') self.TFrame_1.configure(borderwidth="2") self.TFrame_1.configure(relief='ridge') self.TFrame_1.configure(width=155) self.style.map('TRadiobutton', background=[('selected', _bgcolor), ('active', _ana2color)]) self.TRadiobutton_1 = ttk.Radiobutton(self.TFrame_1) self.TRadiobutton_1.place(relx=0.065, rely=0.267, relwidth=0.148, relheight=0.0, height=23) self.TRadiobutton_1.configure(variable=page_parts4_menusetting.var) self.TRadiobutton_1.configure(takefocus="") self.Label_11 = tk.Label(self.TFrame_1) self.Label_11.place(relx=0.194, rely=0.133, height=13, width=30) self.Label_11.configure(activebackground="#f9f9f9") self.Label_11.configure(activeforeground="black") self.Label_11.configure(background="#d9d9d9") self.Label_11.configure(disabledforeground="#a3a3a3") self.Label_11.configure(foreground="#000000") self.Label_11.configure(highlightbackground="#d9d9d9") self.Label_11.configure(highlightcolor="black") self.Label_11.configure(text='''初级''') self.Label_12 = tk.Label(self.TFrame_1) self.Label_12.place(relx=0.194, rely=0.4, height=13, width=50) self.Label_12.configure(activebackground="#f9f9f9") self.Label_12.configure(activeforeground="black") self.Label_12.configure(background="#d9d9d9") self.Label_12.configure(disabledforeground="#a3a3a3") self.Label_12.configure(foreground="#000000") self.Label_12.configure(highlightbackground="#d9d9d9") self.Label_12.configure(highlightcolor="black") self.Label_12.configure(text='''10 个雷''') self.Label_13 = tk.Label(self.TFrame_1) self.Label_13.place(relx=0.194, rely=0.667, height=13, width=90) self.Label_13.configure(activebackground="#f9f9f9") self.Label_13.configure(activeforeground="black") self.Label_13.configure(background="#d9d9d9") self.Label_13.configure(disabledforeground="#a3a3a3") self.Label_13.configure(foreground="#000000") self.Label_13.configure(highlightbackground="#d9d9d9") self.Label_13.configure(highlightcolor="black") self.Label_13.configure(text='''9 x 9 平铺网格''') self.TFrame_2 = ttk.Frame(self.TLabelframe_ld) self.TFrame_2.place(relx=0.073, rely=0.377, relheight=0.283, relwidth=0.378, bordermode='ignore') self.TFrame_2.configure(relief='ridge') self.TFrame_2.configure(borderwidth="2") self.TFrame_2.configure(relief='ridge') self.TFrame_2.configure(width=155) self.TRadiobutton_2 = ttk.Radiobutton(self.TFrame_2) self.TRadiobutton_2.place(relx=0.065, rely=0.267, relwidth=0.148, relheight=0.0, height=23) self.TRadiobutton_2.configure(variable=page_parts4_menusetting.var) self.TRadiobutton_2.configure(value="2") self.TRadiobutton_2.configure(takefocus="") self.Label_21 = tk.Label(self.TFrame_2) self.Label_21.place(relx=0.194, rely=0.133, height=13, width=30) self.Label_21.configure(activebackground="#f9f9f9") self.Label_21.configure(activeforeground="black") self.Label_21.configure(background="#d9d9d9") self.Label_21.configure(disabledforeground="#a3a3a3") self.Label_21.configure(foreground="#000000") self.Label_21.configure(highlightbackground="#d9d9d9") self.Label_21.configure(highlightcolor="black") self.Label_21.configure(text='''中级''') self.Label_22 = tk.Label(self.TFrame_2) self.Label_22.place(relx=0.194, rely=0.4, height=13, width=50) self.Label_22.configure(activebackground="#f9f9f9") self.Label_22.configure(activeforeground="black") self.Label_22.configure(background="#d9d9d9") self.Label_22.configure(disabledforeground="#a3a3a3") self.Label_22.configure(foreground="#000000") self.Label_22.configure(highlightbackground="#d9d9d9") self.Label_22.configure(highlightcolor="black") self.Label_22.configure(text='''40 个雷''') self.Label_23 = tk.Label(self.TFrame_2) self.Label_23.place(relx=0.194, rely=0.667, height=13, width=100) self.Label_23.configure(activebackground="#f9f9f9") self.Label_23.configure(activeforeground="black") self.Label_23.configure(background="#d9d9d9") self.Label_23.configure(disabledforeground="#a3a3a3") self.Label_23.configure(foreground="#000000") self.Label_23.configure(highlightbackground="#d9d9d9") self.Label_23.configure(highlightcolor="black") self.Label_23.configure(text='''16 x 16 平铺网格''') self.TFrame_3 = ttk.Frame(self.TLabelframe_ld) self.TFrame_3.place(relx=0.073, rely=0.679, relheight=0.283, relwidth=0.378, bordermode='ignore') self.TFrame_3.configure(relief='ridge') self.TFrame_3.configure(borderwidth="2") self.TFrame_3.configure(relief='ridge') self.TFrame_3.configure(width=155) self.TRadiobutton_3 = ttk.Radiobutton(self.TFrame_3) self.TRadiobutton_3.place(relx=0.065, rely=0.267, relwidth=0.148, relheight=0.0, height=23) self.TRadiobutton_3.configure(variable=page_parts4_menusetting.var) self.TRadiobutton_3.configure(value="3") self.TRadiobutton_3.configure(takefocus="") self.Label_31 = tk.Label(self.TFrame_3) self.Label_31.place(relx=0.194, rely=0.133, height=13, width=30) self.Label_31.configure(activebackground="#f9f9f9") self.Label_31.configure(activeforeground="black") self.Label_31.configure(background="#d9d9d9") self.Label_31.configure(disabledforeground="#a3a3a3") self.Label_31.configure(foreground="#000000") self.Label_31.configure(highlightbackground="#d9d9d9") self.Label_31.configure(highlightcolor="black") self.Label_31.configure(text='''高级''') self.Label_32 = tk.Label(self.TFrame_3) self.Label_32.place(relx=0.194, rely=0.333, height=13, width=50) self.Label_32.configure(activebackground="#f9f9f9") self.Label_32.configure(activeforeground="black") self.Label_32.configure(background="#d9d9d9") self.Label_32.configure(disabledforeground="#a3a3a3") self.Label_32.configure(foreground="#000000") self.Label_32.configure(highlightbackground="#d9d9d9") self.Label_32.configure(highlightcolor="black") self.Label_32.configure(text='''99个雷''') self.Label_33 = tk.Label(self.TFrame_3) self.Label_33.place(relx=0.194, rely=0.6, height=13, width=100) self.Label_33.configure(activebackground="#f9f9f9") self.Label_33.configure(activeforeground="black") self.Label_33.configure(background="#d9d9d9") self.Label_33.configure(disabledforeground="#a3a3a3") self.Label_33.configure(foreground="#000000") self.Label_33.configure(highlightbackground="#d9d9d9") self.Label_33.configure(highlightcolor="black") self.Label_33.configure(text='''16 x 30 平铺网格''') self.TFrame_0 = ttk.Frame(self.TLabelframe_ld) self.TFrame_0.place(relx=0.537, rely=0.075, relheight=0.434, relwidth=0.427, bordermode='ignore') self.TFrame_0.configure(relief='ridge') self.TFrame_0.configure(borderwidth="2") self.TFrame_0.configure(relief='ridge') self.TFrame_0.configure(width=175) self.TRadiobutton_0 = ttk.Radiobutton(self.TFrame_0) self.TRadiobutton_0.place(relx=0.057, rely=0.043, relwidth=0.131, relheight=0.0, height=23) self.TRadiobutton_0.configure(variable=page_parts4_menusetting.var) self.TRadiobutton_0.configure(value="0") self.TRadiobutton_0.configure(takefocus="") self.Label_01 = tk.Label(self.TFrame_0) self.Label_01.place(relx=0.171, rely=0.087, height=13, width=40) self.Label_01.configure(activebackground="#f9f9f9") self.Label_01.configure(activeforeground="black") self.Label_01.configure(background="#d9d9d9") self.Label_01.configure(disabledforeground="#a3a3a3") self.Label_01.configure(foreground="#000000") self.Label_01.configure(highlightbackground="#d9d9d9") self.Label_01.configure(highlightcolor="black") self.Label_01.configure(text='''自定义''') self.Label_02 = tk.Label(self.TFrame_0) self.Label_02.place(relx=0.114, rely=0.261, height=23, width=67) self.Label_02.configure(activebackground="#f9f9f9") self.Label_02.configure(activeforeground="black") self.Label_02.configure(background="#d9d9d9") self.Label_02.configure(disabledforeground="#a3a3a3") self.Label_02.configure(foreground="#000000") self.Label_02.configure(highlightbackground="#d9d9d9") self.Label_02.configure(highlightcolor="black") self.Label_02.configure(text='''高度(9-24):''') self.Label_03 = tk.Label(self.TFrame_0) self.Label_03.place(relx=0.114, rely=0.435, height=23, width=67) self.Label_03.configure(activebackground="#f9f9f9") self.Label_03.configure(activeforeground="black") self.Label_03.configure(background="#d9d9d9") self.Label_03.configure(disabledforeground="#a3a3a3") self.Label_03.configure(foreground="#000000") self.Label_03.configure(highlightbackground="#d9d9d9") self.Label_03.configure(highlightcolor="black") self.Label_03.configure(text='''宽度(9-30):''') self.Entry_01 = tk.Entry(self.TFrame_0) self.Entry_01.place(relx=0.629, rely=0.261, height=17, relwidth=0.309) self.Entry_01.configure(background="white") self.Entry_01.configure(disabledforeground="#a3a3a3") self.Entry_01.configure(font="TkFixedFont") self.Entry_01.configure(foreground="#000000") self.Entry_01.configure(highlightbackground="#d9d9d9") self.Entry_01.configure(highlightcolor="black") self.Entry_01.configure(insertbackground="black") self.Entry_01.configure(selectbackground="#c4c4c4") self.Entry_01.configure(selectforeground="black") self.Entry_01.configure(textvariable=page_parts4_menusetting.var_h) self.Entry_01.bind("<FocusOut>", page_parts4_menusetting.bind_FocusOut_Entry_01) self.Entry_02 = tk.Entry(self.TFrame_0) self.Entry_02.place(relx=0.629, rely=0.478, height=17, relwidth=0.309) self.Entry_02.configure(background="white") self.Entry_02.configure(disabledforeground="#a3a3a3") self.Entry_02.configure(font="TkFixedFont") self.Entry_02.configure(foreground="#000000") self.Entry_02.configure(highlightbackground="#d9d9d9") self.Entry_02.configure(highlightcolor="black") self.Entry_02.configure(insertbackground="black") self.Entry_02.configure(selectbackground="#c4c4c4") self.Entry_02.configure(selectforeground="black") self.Entry_02.configure(textvariable=page_parts4_menusetting.var_w) self.Entry_02.bind("<FocusOut>", page_parts4_menusetting.bind_FocusOut_Entry_02) self.Entry_03 = tk.Entry(self.TFrame_0) self.Entry_03.place(relx=0.629, rely=0.696, height=17, relwidth=0.309) self.Entry_03.configure(background="white") self.Entry_03.configure(disabledforeground="#a3a3a3") self.Entry_03.configure(font="TkFixedFont") self.Entry_03.configure(foreground="#000000") self.Entry_03.configure(highlightbackground="#d9d9d9") self.Entry_03.configure(highlightcolor="black") self.Entry_03.configure(insertbackground="black") self.Entry_03.configure(selectbackground="#c4c4c4") self.Entry_03.configure(selectforeground="black") self.Entry_03.configure(textvariable=page_parts4_menusetting.var_m) self.Entry_03.bind("<FocusOut>", page_parts4_menusetting.bind_FocusOut_Entry_03) self.Label_04 = tk.Label(self.TFrame_0) self.Label_04.place(relx=0.057, rely=0.652, height=23, width=77) self.Label_04.configure(activebackground="#f9f9f9") self.Label_04.configure(activeforeground="black") self.Label_04.configure(background="#d9d9d9") self.Label_04.configure(disabledforeground="#a3a3a3") self.Label_04.configure(foreground="#000000") self.Label_04.configure(highlightbackground="#d9d9d9") self.Label_04.configure(highlightcolor="black") self.Label_04.configure(text='''雷数(10-90%):''') self.Label_04.configure(width=77) self.TFrame_dl = ttk.Frame(top) self.TFrame_dl.place(relx=0.043, rely=0.811, relheight=0.095, relwidth=0.989) self.TFrame_dl.configure(relief='flat') self.TFrame_dl.configure(borderwidth="2") self.TFrame_dl.configure(relief='flat') self.TFrame_dl.configure(width=455) self.Button_qx = tk.Button(self.TFrame_dl) self.Button_qx.place(relx=0.593, rely=0.0, height=28, width=55) self.Button_qx.configure(activebackground="#ececec") self.Button_qx.configure(activeforeground="#000000") self.Button_qx.configure(background="#d9d9d9") self.Button_qx.configure( command=page_parts4_menusetting.command_Button_qx) self.Button_qx.configure(disabledforeground="#a3a3a3") self.Button_qx.configure(foreground="#000000") self.Button_qx.configure(highlightbackground="#d9d9d9") self.Button_qx.configure(highlightcolor="black") self.Button_qx.configure(pady="0") self.Button_qx.configure(text='''取消''') self.Button_bc = tk.Button(self.TFrame_dl) self.Button_bc.place(relx=0.736, rely=0.0, height=28, width=55) self.Button_bc.configure(activebackground="#ececec") self.Button_bc.configure(activeforeground="#000000") self.Button_bc.configure(background="#d9d9d9") self.Button_bc.configure( command=page_parts4_menusetting.command_Button_bc) self.Button_bc.configure(disabledforeground="#a3a3a3") self.Button_bc.configure(foreground="#000000") self.Button_bc.configure(highlightbackground="#d9d9d9") self.Button_bc.configure(highlightcolor="black") self.Button_bc.configure(pady="0") self.Button_bc.configure(text='''保存''')
def __init__(self): self.root = tk.Tk() '''This class configures and populates the toplevel window. top is the toplevel containing window.''' _bgcolor = '#d9d9d9' # X11 color: 'gray85' _fgcolor = '#000000' # X11 color: 'black' _compcolor = '#d9d9d9' # X11 color: 'gray85' _ana1color = '#d9d9d9' # X11 color: 'gray85' _ana2color = '#ececec' # Closest X11 color: 'gray92' self.style = ttk.Style() if sys.platform == "win32": self.style.theme_use('winnative') self.style.configure('.', background=_bgcolor) self.style.configure('.', foreground=_fgcolor) self.style.configure('.', font="TkDefaultFont") self.style.map('.', background= [('selected', _compcolor), ('active', _ana2color)]) self.root.geometry("595x600+422+80") self.root.title(self.device_name) self.root.configure(background="#d9d9d9") self.root.configure(highlightbackground="#d9d9d9") self.root.configure(highlightcolor="black") self.connection_parameter_frame = ttk.Labelframe(self.root) self.connection_parameter_frame.place(relx=0.017, rely=0.02 , relheight=0.274, relwidth=0.941) self.connection_parameter_frame.configure(relief='') self.connection_parameter_frame.configure(text='''connection_parameter''') self.connection_parameter_frame.configure(width=560) self.port_description_frame = ttk.Labelframe(self.connection_parameter_frame) self.port_description_frame.place(relx=0.018, rely=0.519, relheight=0.333 , relwidth=0.714, bordermode='ignore') self.port_description_frame.configure(relief='') self.port_description_frame.configure(text='''port_description''') self.port_description_frame.configure(width=400) self.portlist = tk.StringVar() self.port_entry = ttk.Combobox(self.port_description_frame) self.port_entry.place(relx=0.025, rely=0.444, relheight=0.467, relwidth=0.94, bordermode='ignore') self.port_entry.configure(takefocus="") self.port_entry.configure(textvariable=self.portlist) self.port_entry.configure(cursor="ibeam") self.initiate_port_entry() self.connect_button = ttk.Button(self.connection_parameter_frame) self.connect_button.place(relx=0.804, rely=0.34, height=25, width=76 , bordermode='ignore') self.connect_button.configure(text='''connect''') self.connect_button.bind('<Button-1>', lambda e: self.start1(e)) self.disconnect_button = ttk.Button(self.connection_parameter_frame) self.disconnect_button.place(relx=0.804, rely=0.54, height=25, width=76 , bordermode='ignore') self.disconnect_button.configure(takefocus="") self.disconnect_button.configure(text='''disconnect''') self.disconnect_button.configure(state='disable') self.disconnect_button.bind('<Button-1>', lambda e: self.exit1(e)) self.exit_btn = ttk.Button(self.connection_parameter_frame) self.exit_btn.place(relx=0.804, rely=0.74, height=25, width=76 , bordermode='ignore') self.exit_btn.configure(takefocus="") self.exit_btn.configure(text='''exit''') self.exit_btn.bind('<Button-1>', lambda e: self.exit2(e)) self.connection_state = ttk.Labelframe(self.root) self.connection_state.place(relx=0.017, rely=0.304, relheight=0.68 , relwidth=0.941) self.connection_state.configure(relief='') self.connection_state.configure(text='''connection_state''') self.connection_state.configure(width=560) self.connection_state_text = ScrolledText(self.connection_state) self.connection_state_text.place(relx=0.018, rely=0.06, relheight=0.928 , relwidth=0.966, bordermode='ignore') self.connection_state_text.configure(background="white") self.connection_state_text.configure(state='disabled') self.connection_state_text.configure(font="TkTextFont") self.connection_state_text.configure(foreground="black") self.connection_state_text.configure(highlightbackground="#d9d9d9") self.connection_state_text.configure(highlightcolor="black") self.connection_state_text.configure(insertbackground="black") self.connection_state_text.configure(insertborderwidth="3") self.connection_state_text.configure(selectbackground="#c4c4c4") self.connection_state_text.configure(selectforeground="black") self.connection_state_text.configure(width=254) self.connection_state_text.configure(wrap="none") for key in self.l2g: self.g2l[self.l2g[key]] = key print('__init__: l2g,',self.l2g) self.path = str(os.path.expanduser('~/')) os.chdir(self.path) try: os.mkdir(self.device_name) except FileExistsError: pass os.chdir(self.path + self.device_name) self.port_entry.insert(0, 'USB-SERIAL CH340') self.dbc() try: self.dbc(''' CREATE TABLE sample( barcode unsigned int primary key, created_at datetime not null default current_timestamp ) ''') except sqlite3.OperationalError as e: print('already exists') if str(e)[-6:] == 'exists': pass else: raise sqlite3.OperationalError try: self.dbc(''' CREATE TABLE counter( id unsigned int primary key not null default 1, count unsigned int not null default 1 ) ''') self.dbc('insert into counter(id,count) values(1,1);') except sqlite3.OperationalError as e: print('already exists') if str(e)[-6:] == 'exists': pass else: raise sqlite3.OperationalError try: self.dbc(''' CREATE TABLE test( test_id unsigned int primary key not null, barcodeid unsigned int not null, results varchar(10000) not null, uploadstate varchar(1) default 'n', created_at datetime not null default current_timestamp, FOREIGN KEY(barcodeid) REFERENCES user(barcode) ); ''') except sqlite3.OperationalError as e: print('already exists') if str(e)[-6:] == 'exists': pass else: raise sqlite3.OperationalError
def __init__(self, master=None): '''Initialise Control Class''' _compcolor = '#ffffff' # X11 color: #ffffff _ana2color = '#ffffff' # X11 color: #ffffff self.data = '' self.identifier = '' self.style = ttk.Style() if sys.platform == "win32": self.style.theme_use('winnative') # self.style.configure('.',background=_bgcolor) # self.style.configure('.',foreground=_fgcolor) # self.style.configure('.',font=font10) self.style.map( '.', background=[('selected', _compcolor), ('active', _ana2color)]) master.configure(highlightcolor="black") self.TLabelframe1 = ttk.Labelframe(master) self.TLabelframe1.place( relx=0.07, rely=0.07, relheight=0.58, relwidth=0.86) self.TLabelframe1.configure(text='''XFERO Control''') self.TLabelframe1.configure(width=520) f = ttk.Frame(self.TLabelframe1) f.pack(side=TOP, fill=BOTH, expand=Y) # create the tree and scrollbars self.dataCols = ( 'Identifier', 'Status', 'PGP Private Key', 'PGP Passphrase', 'Number of Threads') self.tree = ttk.Treeview(self.TLabelframe1) self.tree.configure(columns=self.dataCols) self.tree.configure(show='headings') ysb = ttk.Scrollbar(self.TLabelframe1) ysb.configure(orient=VERTICAL, command=self.tree.yview) xsb = ttk.Scrollbar(self.TLabelframe1) xsb.configure(orient=HORIZONTAL, command=self.tree.xview) self.tree.configure(yscroll=ysb.set, xscroll=xsb.set) # add tree and scrollbars to frame self.tree.grid(in_=f, row=0, column=0, sticky=NSEW) ysb.grid(in_=f, row=0, column=1, sticky=NS) xsb.grid(in_=f, row=1, column=0, sticky=EW) # set frame resize priorities f.rowconfigure(0, weight=1) f.columnconfigure(0, weight=1) # load tree data self._load_data() # Bind selection self.tree.bind('<Button-1>', self.Tree_Select) # Configure window objects self.Label1 = Label(master) self.Label1.place(relx=0.06, rely=0.72, height=22, width=97) self.Label1.configure(activebackground="#ffffff") self.Label1.configure(activeforeground="black") # self.Label1.configure(background=_bgcolor) self.Label1.configure(disabledforeground="#bfbfbf") # self.Label1.configure(font=font10) self.Label1.configure(foreground="#000000") # self.Label1.configure(highlightbackground="#ffffff") # self.Label1.configure(highlightcolor="black") self.Label1.configure(text='''Control Status:''') self.Label4 = Label(master) self.Label4.place(relx=0.06, rely=0.81, height=22, width=102) self.Label4.configure(activebackground="#ffffff") self.Label4.configure(activeforeground="black") # self.Label4.configure(background=_bgcolor) self.Label4.configure(disabledforeground="#bfbfbf") # self.Label4.configure(font=font10) self.Label4.configure(foreground="#000000") # self.Label4.configure(highlightbackground="#ffffff") # self.Label4.configure(highlightcolor="black") self.Label4.configure(text='''Num of Threads:''') self.Label2 = Label(master) self.Label2.place(relx=0.44, rely=0.72, height=22, width=104) self.Label2.configure(activebackground="#ffffff") self.Label2.configure(activeforeground="black") # self.Label2.configure(background=_bgcolor) self.Label2.configure(disabledforeground="#bfbfbf") # self.Label2.configure(font=font10) self.Label2.configure(foreground="#000000") # self.Label2.configure(highlightbackground="#ffffff") # self.Label2.configure(highlightcolor="black") self.Label2.configure(text='''PGP Private Key:''') self.Label3 = Label(master) self.Label3.place(relx=0.44, rely=0.81, height=22, width=109) self.Label3.configure(activebackground="#ffffff") self.Label3.configure(activeforeground="black") # self.Label3.configure(background=_bgcolor) self.Label3.configure(disabledforeground="#bfbfbf") # self.Label3.configure(font=font10) self.Label3.configure(foreground="#000000") # self.Label3.configure(highlightbackground="#ffffff") # self.Label3.configure(highlightcolor="black") self.Label3.configure(text='''PGP Passphrase:''') self.Entry_Status = Entry(master) self.Entry_Status.place( relx=0.25, rely=0.71, relheight=0.07, relwidth=0.17) self.Entry_Status.configure(background="white") self.Entry_Status.configure(disabledforeground="#bfbfbf") # self.Entry_Status.configure(font=font11) self.Entry_Status.configure(foreground="#000000") # self.Entry_Status.configure(highlightcolor="black") # self.Entry_Status.configure(insertbackground="black") # self.Entry_Status.configure(selectbackground="#e6e6e6") # self.Entry_Status.configure(selectforeground="black") self.Entry_Num_Threads = Entry(master) self.Entry_Num_Threads.place( relx=0.25, rely=0.8, relheight=0.07, relwidth=0.17) self.Entry_Num_Threads.configure(background="white") self.Entry_Num_Threads.configure(disabledforeground="#bfbfbf") # self.Entry_Num_Threads.configure(font=font11) self.Entry_Num_Threads.configure(foreground="#000000") # self.Entry_Num_Threads.configure(highlightcolor="black") # self.Entry_Num_Threads.configure(insertbackground="black") # self.Entry_Num_Threads.configure(selectbackground="#e6e6e6") # self.Entry_Num_Threads.configure(selectforeground="black") self.Entry_Priv_Key = Entry(master) self.Entry_Priv_Key.place( relx=0.63, rely=0.71, relheight=0.07, relwidth=0.30) self.Entry_Priv_Key.configure(background="white") self.Entry_Priv_Key.configure(disabledforeground="#bfbfbf") # self.Entry_Priv_Key.configure(font=font11) self.Entry_Priv_Key.configure(foreground="#000000") # self.Entry_Priv_Key.configure(highlightcolor="black") # self.Entry_Priv_Key.configure(insertbackground="black") # self.Entry_Priv_Key.configure(selectbackground="#e6e6e6") # self.Entry_Priv_Key.configure(selectforeground="black") self.Entry_Passphrase = Entry(master) self.Entry_Passphrase.place( relx=0.63, rely=0.8, relheight=0.07, relwidth=0.30) self.Entry_Passphrase.configure(background="white") self.Entry_Passphrase.configure(disabledforeground="#bfbfbf") # self.Entry_Passphrase.configure(font=font11) self.Entry_Passphrase.configure(foreground="#000000") # self.Entry_Passphrase.configure(highlightcolor="black") # self.Entry_Passphrase.configure(insertbackground="black") # self.Entry_Passphrase.configure(selectbackground="#e6e6e6") # self.Entry_Passphrase.configure(selectforeground="black") self.Button_Add = Button(master) self.Button_Add.place(relx=0.83, rely=0.88, height=28, width=54) self.Button_Add.configure(activebackground="#ffffff") self.Button_Add.configure(activeforeground="#000000") # self.Button_Add.configure(background=_bgcolor) self.Button_Add.configure(disabledforeground="#bfbfbf") # self.Button_Add.configure(font=font10) self.Button_Add.configure(foreground="#000000") # self.Button_Add.configure(highlightbackground="#ffffff") # self.Button_Add.configure(highlightcolor="black") self.Button_Add.configure(text='''Add''') self.Button_Add.configure(command=self.Button_Add_Click) self.Button_Cancel = Button(master) self.Button_Cancel.place(relx=0.48, rely=0.88, height=28, width=70) self.Button_Cancel.configure(activebackground="#ffffff") self.Button_Cancel.configure(activeforeground="#000000") # self.Button_Cancel.configure(background=_bgcolor) self.Button_Cancel.configure(disabledforeground="#bfbfbf") # self.Button_Cancel.configure(font=font10) self.Button_Cancel.configure(foreground="#000000") # self.Button_Cancel.configure(highlightbackground="#ffffff") # self.Button_Cancel.configure(highlightcolor="black") self.Button_Cancel.configure(text='''Cancel''') self.Button_Cancel.configure(command=self.Button_Cancel_Click) self.Button_Update = Button(master) self.Button_Update.place(relx=0.71, rely=0.88, height=28, width=73) self.Button_Update.configure(activebackground="#ffffff") self.Button_Update.configure(activeforeground="#000000") # self.Button_Update.configure(background=_bgcolor) self.Button_Update.configure(disabledforeground="#bfbfbf") # self.Button_Update.configure(font=font10) self.Button_Update.configure(foreground="#000000") # self.Button_Update.configure(highlightbackground="#ffffff") # self.Button_Update.configure(highlightcolor="black") self.Button_Update.configure(state="disabled") self.Button_Update.configure(text='''Update''') self.Button_Update.configure(command=self.Button_Update_Click) self.Button_Delete = Button(master) self.Button_Delete.place(relx=0.6, rely=0.88, height=28, width=68) self.Button_Delete.configure(activebackground="#ffffff") self.Button_Delete.configure(activeforeground="#000000") # self.Button_Delete.configure(background=_bgcolor) self.Button_Delete.configure(disabledforeground="#bfbfbf") # self.Button_Delete.configure(font=font10) self.Button_Delete.configure(foreground="#000000") # self.Button_Delete.configure(highlightbackground="#ffffff") # self.Button_Delete.configure(highlightcolor="black") self.Button_Delete.configure(state="disabled") self.Button_Delete.configure(text='''Delete''') self.Button_Delete.configure(command=self.Button_Delete_Click)
def __init__(self, root): root.title("Regularization for Machine Learning") root.resizable(width=False, height=False) Main = ttk.Frame(root, padding=(3, 3, 12, 12)) #,width=600, height=600) f1 = ttk.Labelframe(Main, text='Input', borderwidth=1, relief="sunken", width=300, height=300, padding=(10, 10, 12, 12)) # f2 = ttk.Frame(Main, borderwidth=1, relief="sunken", width=300, height=400, padding=(10, 10, 12, 12)) self.f3 = ttk.Frame(Main, borderwidth=5, relief="sunken", width=300, height=400, padding=(1, 1, 1, 1)) f4 = ttk.Frame(Main, borderwidth=1, relief="sunken", width=300, height=300, padding=(3, 3, 3, 3)) f11 = ttk.Labelframe(f1, text='Task', borderwidth=1, relief="sunken", width=300, height=100, padding=(3, 3, 12, 12)) # f12 = ttk.Labelframe(f1, text='Dataset', borderwidth=1, relief="sunken", width=300, height=200, padding=(3, 3, 20, 20)) # f21 = ttk.Labelframe(f2, text='Filter', borderwidth=1, relief="sunken", width=300, height=50, padding=(3, 3, 12, 12)) f22 = ttk.Labelframe(f2, text='Kernal', borderwidth=1, relief="sunken", width=300, height=100, padding=(3, 3, 12, 12)) f23 = ttk.Labelframe(f2, text='Learning', borderwidth=1, relief="sunken", width=300, height=200, padding=(3, 3, 12, 12)) f41 = ttk.Labelframe(f4, text='Result', borderwidth=1, relief="sunken", width=400, height=70, padding=(3, 3, 1, 1)) self.f42 = ttk.Labelframe(f4, borderwidth=5, relief="sunken", width=400, height=220, padding=(0, 0, 0, 0)) Main.grid(column=0, row=0, sticky=(N, S, E, W)) f1.grid(column=0, row=0, columnspan=1, rowspan=1, sticky=(N, S, E, W)) f2.grid(column=1, row=0, columnspan=3, rowspan=2, sticky=(N, S, E, W)) self.f3.grid(column=0, row=1, columnspan=1, rowspan=2, sticky=(N, S, E, W)) f4.grid(column=1, row=2, columnspan=3, rowspan=1, sticky=(N, S, E, W)) f11.grid(column=0, row=1, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=5) f12.grid(column=0, row=2, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=5) f21.grid(column=0, row=0, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=5) f22.grid(column=0, row=1, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=5) f23.grid(column=0, row=2, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=5) f41.grid(row=0, sticky=(N, S, E, W), pady=5) self.f42.grid(row=1, sticky=(N, S)) ###-------------------------------- F1------------------------------------ label1f1 = ttk.Label(f1, text='Input ') label2f1 = ttk.Label(f11, text='Task') label3f1 = ttk.Label(f12, text='Dataset') tFont = tkFont.Font(f12, family='Times', weight='bold') #, size=12 label4f1 = ttk.Label( f12, text='# Training Samples') #,style ="B.TLabel")#,font =tFont) label5f1 = ttk.Label(f12, text='# Test Samples') label6f1 = ttk.Label(f12, text='Wrong labels ratio[0-1]') labelfont = ('timesroman', 15, 'bold') self.task = IntVar() self.task.set(1) self.Clf = ttk.Radiobutton(f11, text='Claasification', variable=self.task, value=1, command=self.TaskSelF) self.Reg = ttk.Radiobutton(f11, text='Regression ', variable=self.task, value=0, command=self.TaskSelF, state='disabled') self.dt = StringVar() self.eData = ttk.Radiobutton(f12, text='Existing Dataset', variable=self.dt, value=1, command=self.seDataFun) self.sData = ttk.Radiobutton( f12, text='Simulation ', variable=self.dt, value=0, command=self.seDataFun) #, state='disabled') self.Browse = ttk.Button(f12, text="Browse", command=self.BrowseDataFun) #self.eDataO = StringVar() self.eDataG = ttk.Entry(f12, width=8) self.sDataG = ttk.Combobox(f12) #, textvariable = self.sDataO) self.sDataG['values'] = ('Moons', 'Gaussians', 'Linear', 'Sinusoidal', 'Spiral') #,'Toy') #MOONS, GAUSSIANS, LINEAR, SINUSOIDAL, SPIRAL self.sDataG.current(0) self.nTr = StringVar() self.nTs = StringVar() self.nE = StringVar() self.nTrain = ttk.Entry(f12, textvariable=self.nTr, width=7) self.nTest = ttk.Entry(f12, textvariable=self.nTs, width=7) self.nWL = ttk.Entry(f12, textvariable=self.nE, width=7) self.nTrain.insert(0, '100') self.nTest.insert(0, '100') self.nWL.insert(0, '0.0') self.LoadData = ttk.Button(f12, text="LoadData", command=self.LoadDataFun) ## --------------F1----------Grid-------------------------------- #F11 self.Clf.grid(column=0, row=2, columnspan=2, rowspan=1, sticky=(N, S, E, W)) self.Reg.grid(column=3, row=2, columnspan=1, rowspan=1, sticky=(N, S, E, W)) #F12 self.eData.grid(column=0, row=1, columnspan=2, rowspan=1, sticky=(N, S, E, W)) self.eDataG.grid(column=2, row=1, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=5) self.Browse.grid(column=3, row=1, columnspan=2, rowspan=1, sticky=(S, W), padx=10) self.sData.grid(column=0, row=2, columnspan=2, rowspan=1, sticky=(N, S, E, W)) self.sDataG.grid(column=2, row=2, columnspan=1, rowspan=1, sticky=(N, S, E, W)) label4f1.grid(column=2, row=3, columnspan=1, rowspan=1, sticky=(N, S, E, W)) label5f1.grid(column=2, row=4, columnspan=1, rowspan=1, sticky=(N, S, E, W)) label6f1.grid(column=2, row=5, columnspan=1, rowspan=1, sticky=(N, S, E, W)) self.nTrain.grid(column=3, row=3, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=2) self.nTest.grid(column=3, row=4, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=2) self.nWL.grid(column=3, row=5, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=2) self.LoadData.grid(column=0, row=6, columnspan=1, rowspan=1, sticky=(N, S, E, W)) ###-------------------------------- F2------------------------------------ #Filter------ label1f2 = ttk.Label(f21, text='Filter') # DropDown self.ftrO = ttk.Combobox(f21, width=30) self.ftrO['values'] = ('Regularized Least Squares', 'nu-method', 'Truncated SVD', 'Spectral cut-off', 'Iterative Landweber') self.ftrO.current(0) self.ftrO.bind("<<ComboboxSelected>>", self.filtrUpdate) #Kernal------ label2f2 = ttk.Label(f22, text='Kernal') # DropDown self.krnlO = ttk.Combobox(f22) self.krnlO['values'] = ('Linear', 'Polynomial', 'Gaussian') self.krnlO.current(0) self.krnlO.bind("<<ComboboxSelected>>", self.kpRangeUpdate) #self.kparVar = StringVar() self.kParaO = ttk.Scale(f22, orient=HORIZONTAL, length=200) #, from_=0.0, to=100.0) self.kParaO['command'] = self.kParaSelFun self.kParaO['from_'] = 1.0 self.kParaO['to'] = 30.0 self.label3f2 = ttk.Label(f22, text='kpar : 0.0') self.aSigVar = IntVar() self.aSigmaO = ttk.Checkbutton(f22, text='AutoSigma', variable=self.aSigVar, command=self.aSigmaSelFun) ukpar = DoubleVar() self.ukparO = ttk.Entry(f22, width=8) #textvariable=ukpar, self.ukparO.insert(0, 0.0) label3f2 = ttk.Label(f23, text='Learning') self.tVar = IntVar() self.cKvcO = ttk.Checkbutton(f23, text='use KCV', variable=self.tVar, onvalue=1, offvalue=0, command=self.cKCVSelfun) self.fixedVO = ttk.Checkbutton(f23, text='Fixed Value', variable=self.tVar, onvalue=0, offvalue=1, command=self.cKCVSelfun) label31f2 = ttk.Label(f23, text='Split') label32f2 = ttk.Label(f23, text='# split') label33f2 = ttk.Label(f23, text='t min') label34f2 = ttk.Label(f23, text='t max') label35f2 = ttk.Label(f23, text='# of values') # DropDown1 #splitype = StringVar() self.splitO = ttk.Combobox(f23) #, textvariable = splitype) self.splitO['values'] = ('Sequential', 'Random') self.splitO.current(0) # DropDown2 self.vScaleO = ttk.Combobox(f23) self.vScaleO['values'] = ('Linear Space', 'Log Space') self.vScaleO.current(0) self.nSO = ttk.Entry(f23, width=4) self.tMnO = ttk.Entry(f23, width=4) self.tMxO = ttk.Entry(f23, width=4) self.nSvO = ttk.Entry(f23, width=4) self.fixVO = ttk.Entry(f23, width=4) self.nSO.insert(0, 5) self.tMnO.insert(0, 0.0) self.tMxO.insert(0, 1.0) self.nSvO.insert(0, 10) self.fixVO.insert(0, 1.3) ## --------------F2----------Grid-------------------------------- ##F21 self.ftrO.grid(column=0, row=0, columnspan=2, rowspan=1, sticky=(N, S, E, W), padx=10) ## F22 #Kernal------ # DropDown self.krnlO.grid(column=1, row=1, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=5) self.kParaO.grid(column=1, row=2, columnspan=2, rowspan=1, sticky=(N, S, E, W), padx=10, pady=5) self.label3f2.grid(column=0, row=2, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=5, pady=5) self.aSigmaO.grid(column=0, row=3, columnspan=1, rowspan=1, sticky=(N, S, E, W)) self.ukparO.grid(column=2, row=3, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=2) ## F23 self.cKvcO.grid(column=0, row=1, columnspan=1, rowspan=1, sticky=(N, S, E, W)) label31f2.grid(column=0, row=2, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=15) label32f2.grid(column=0, row=3, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=15) label33f2.grid(column=0, row=4, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=15) label34f2.grid(column=0, row=5, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=15) label35f2.grid(column=0, row=6, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=15) # DropDown2 self.vScaleO.grid(column=0, row=7, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=20) self.fixedVO.grid(column=0, row=8, columnspan=1, rowspan=1, sticky=(N, S, E, W)) # DropDown1 self.splitO.grid(column=1, row=2, columnspan=2, rowspan=1, sticky=(N, S, E, W), pady=4) #Entry-- self.nSO.grid(column=2, row=3, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=2) self.tMnO.grid(column=2, row=4, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=2) self.tMxO.grid(column=2, row=5, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=2) self.nSvO.grid(column=2, row=6, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=2) self.fixVO.grid(column=1, row=8, columnspan=1, rowspan=1, sticky=(N, S, E, W), pady=2) ###-------------------------------- F3------------------------------------ ## Plot ###-------------------------------- F4------------------------------------ #F4 self.label1f41 = ttk.Label(f41, text='Training Error - ') self.label2f41 = ttk.Label(f41, text='Testing Error - ') self.label3f41 = ttk.Label(f41, text='Selected t - ') self.sep1f41 = ttk.Separator(f41, orient="vertical") ##--------------- F4---------Grid--------------------------- self.label1f41.grid(column=0, row=0, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=5) self.label2f41.grid(column=0, row=1, columnspan=1, rowspan=1, sticky=(N, S, E, W), padx=10, pady=5) self.sep1f41.grid(column=1, row=0, columnspan=1, rowspan=3, sticky='NS', padx=10, pady=0) self.label3f41.grid(column=2, row=0, columnspan=1, rowspan=2, sticky=(N, S, E, W), padx=10, pady=5) #######----------MAIN Frame---------------------------------------------------------- Plot = ttk.Button(Main, text="Plot Test/Train", command=self.PlotTrTsTT) RUN = ttk.Button(Main, text="RUN", command=self.runLEARN) CLOSE = ttk.Button(Main, text="Close", command=self.Qt) Reset = ttk.Button(Main, text="Reset", command=self.ResetSetting) Plot.grid(column=0, row=3) RUN.grid(column=1, row=3) Reset.grid(column=2, row=3) CLOSE.grid(column=3, row=3) #---------Default--Initial Setting variable/Items------------------- self.plotTrain = True self.trained = False self.Clf.invoke() self.sData.invoke() self.aSigmaO.state(['selected']) self.kParaO.state(['disabled']) self.fixedVO.state(['selected']) self.fixedVO.invoke() self.ftrO.current(0)
def __init__(self, parent, text=None, callback=None, **kwargs): self.frame = ttk.Labelframe(parent, text=text) super(LabeledEntry, self).__init__(self.frame, callback=callback) self.pack()
# app = App(root) root.title('Logging Handler') root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) # Create the panes and frames vertical_pane = ttk.PanedWindow(root, orient=VERTICAL) vertical_pane.grid(row=0, column=0, sticky="nsew") horizontal_pane = ttk.PanedWindow(vertical_pane, orient=HORIZONTAL) vertical_pane.add(horizontal_pane, weight=1) horizontal_pane.columnconfigure(0, weight=1) form_frame = ttk.Labelframe(horizontal_pane, text="MyForm") form_frame.columnconfigure(1, weight=1) form_frame.rowconfigure(1, weight=1, minsize=20) form_frame.columnconfigure(0, weight=0, minsize=50) form_frame.rowconfigure(0, weight=1, minsize=20) horizontal_pane.add(form_frame, weight=1) console_frame = ttk.Labelframe(horizontal_pane, text="Console") console_frame.columnconfigure(0, weight=1) console_frame.rowconfigure(0, weight=1) horizontal_pane.add(console_frame, weight=10) third_frame = ttk.Labelframe(vertical_pane, text="Third Frame") vertical_pane.add(third_frame, weight=0) # Initialize all frames
import tkinter as tk from tkinter import ttk from tkinter import messagebox as m_box win = tk.Tk() win.title('MessageBox') # label frames l1 = ttk.Labelframe(win, text='Contact info') l1.grid(row=0, column=0, padx=40, pady=0) # labels lab1 = tk.Label(l1, text="Enter your Name", font=('Comic Sans MS', 12)) # this how you can add your font lab1.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W) lab2 = tk.Label(l1, text='Enter your age', font=('Comic Sans MS', 12)) lab2.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W) # Entry boxes v1 = tk.StringVar() ent1 = ttk.Entry(l1, width=30, textvariable=v1) ent1.grid(row=1, column=0, sticky=tk.W, padx=5, pady=5) v2 = tk.StringVar() ent2 = ttk.Entry(l1, width=30, textvariable=v2) ent2.grid(row=1, column=1, sticky=tk.W, padx=5, pady=5) # buttons def func(): name = v1.get() age = v2.get()
def initUI(self): self.window = tkinter.Tk() self.window.title("OBS Midi Controller") self.initController() self.mainui = ttk.Notebook(self.window) self.obsconf = ttk.Frame( self.mainui) # first page, which would get widgets gridded into it self.midiconf = ttk.Frame(self.mainui) # second page self.mainui.add(self.midiconf, text='MIDI Interface') self.mainui.add(self.obsconf, text='OBS Configuration') self.mainui.pack() self.hst = tkinter.StringVar() self.hst.set(self.config['obsserver']['host']) self.prt = tkinter.StringVar() self.prt.set(self.config['obsserver']['port']) self.pw = tkinter.StringVar() self.pw.set(self.config['obsserver']['password']) self.chnl = tkinter.StringVar() self.chnl.set(self.controller['channel']) self.midiin = tkinter.StringVar() self.midiin.set(self.activeinputcontroller) self.midiout = tkinter.StringVar() self.midiout.set(self.activeoutputcontroller) tkinter.Label(self.obsconf, text="Host").grid(column=0, row=1, sticky='w', padx=5, pady=5) self.hstW = tkinter.Entry(self.obsconf, width=10, textvariable=self.hst) self.hstW.grid(column=1, row=1, sticky="we", padx=5, pady=5) tkinter.Label(self.obsconf, text="Port").grid(column=2, row=1, sticky='w', padx=5, pady=5) self.prtW = tkinter.Entry(self.obsconf, width=10, textvariable=self.prt) self.prtW.grid(column=3, row=1, sticky="we", padx=5, pady=5) tkinter.Label(self.obsconf, text="Password").grid(column=0, row=2, sticky='w', padx=5, pady=5) self.pwW = tkinter.Entry(self.obsconf, width=10, textvariable=self.pw) self.pwW.grid(column=1, row=2, sticky="we", padx=5, pady=5) tkinter.Label(self.midiconf, text="Midi Output").grid(column=0, row=1, sticky='w', padx=5, pady=5) self.midioutCombo = tkinter.ttk.Combobox(self.midiconf, textvariable=self.midiout) self.midioutCombo.grid(column=1, row=1, sticky="we", padx=5, pady=5) self.midioutCombo['values'] = mido.get_output_names() tkinter.Label(self.midiconf, text="Midi Input").grid(column=2, row=1, sticky='w', padx=5, pady=5) self.midiinCombo = tkinter.ttk.Combobox(self.midiconf, textvariable=self.midiin) self.midiinCombo.grid(column=3, row=1, sticky="we", padx=5, pady=5) self.midiinCombo['values'] = mido.get_input_names() tkinter.Label(self.midiconf, text="Input Channel").grid(column=2, row=2, sticky='w', padx=5, pady=5) self.chnlW = tkinter.Entry(self.midiconf, width=10, textvariable=self.chnl) self.chnlW.grid(column=3, row=2, sticky="we", padx=5, pady=5) load = Image.open(".\X-TOUCH-MINI.png") render = ImageTk.PhotoImage(load) self.img = tkinter.Label(self.midiconf, image=render) self.img.image = render self.img.grid(column=0, columnspan=5, row=3, padx=5, pady=5) self.img.bind("<Button>", self.mouseClick) print("Working on Control buttons") lf = ttk.Labelframe(self.midiconf, text='Control Modes') print("modes ----") print(self.controller['modes']) for m in self.controller['modes']: print("----") print(m) print(self.controller['modes'][m]) print(self.controller['modes'][m]['name']) btn = tkinter.Button(lf, text=self.controller['modes'][m]['name'], command=self.modeChanged(m)) btn.pack(side=tkinter.LEFT, padx=5, pady=5) lf.grid(column=0, columnspan=5, row=4, sticky='we') print("----modes") self.n = ttk.Notebook(self.midiconf) self.obs = ttk.Frame( self.n) # first page, which would get widgets gridded into it self.soundboard = ttk.Frame(self.n) # second page self.macro = ttk.Frame(self.n) # second page self.n.add(self.obs, text='OBS Controls') self.n.add(self.soundboard, text='Soundboard') self.n.add(self.macro, text='Macros') self.n.grid(column=0, row=5, columnspan=6, sticky="we", padx=5, pady=5) self.obstree = ttk.Treeview(self.obs, columns=('midi', 'channel', 'code')) self.obstree.heading("#0", text="Name", anchor=tkinter.W) self.obstree.heading("midi", text="Midi Device", anchor=tkinter.W) self.obstree.heading("channel", text="Channel", anchor=tkinter.W) self.obstree.heading("code", text="Code", anchor=tkinter.W) self.obstree.insert('', 'end', 'scenes', text='Scenes', values=('15KB Yesterday mark')) self.obstree.insert('', 'end', 'transitions', text='Transitions', values=('15KB Yesterday mark')) self.obstree.insert('', 'end', 'recording', text='Recording', values=('15KB Yesterday mark')) self.obstree.insert('', 'end', 'streaming', text='Streaming', values=('15KB Yesterday mark')) self.obstree.grid(column=0, row=0, sticky='nsew') self.sbtree = ttk.Treeview(self.soundboard, columns=('midi', 'channel', 'code', 'path')) self.sbtree.heading("#0", text="Name", anchor=tkinter.W) self.sbtree.heading("midi", text="Midi Device", anchor=tkinter.W) self.sbtree.heading("channel", text="Channel", anchor=tkinter.W) self.sbtree.heading("code", text="Code", anchor=tkinter.W) self.sbtree.heading("path", text="Path", anchor=tkinter.W) self.sbtree.grid(column=0, row=0, sticky='nsew') self.macrotree = ttk.Treeview(self.macro, columns=('midi', 'channel', 'code', 'description')) self.macrotree.heading("#0", text="Name", anchor=tkinter.W) self.macrotree.heading("midi", text="Midi Device", anchor=tkinter.W) self.macrotree.heading("channel", text="Channel", anchor=tkinter.W) self.macrotree.heading("code", text="Code", anchor=tkinter.W) self.macrotree.heading("description", text="Description", anchor=tkinter.W) self.macrotree.grid(column=0, row=0, sticky='nsew')
root = Tk() root.title = 'YOUTUBE DOWNLOADER' varfras = StringVar() mainframe = ttk.Frame(root) search = ttk.Entry(mainframe,textvariable = varfras ,width = 30) btn = ttk.Button(mainframe,command = enviar_pesquisa,text = "Pesquisar") btn_audio = ttk.Button(mainframe,command = Ad,text = "Audio") btn_video = ttk.Button(mainframe,command = Vd,text = "Video") vdti = "" imgFrame = ttk.Labelframe(mainframe,width = 350,height =200,text = vdti ) mainframe.grid(sticky=(N,W,E,S)) search.grid(row=0,column = 0,sticky = N,columnspan=2) btn.grid(row=1,column = 0, sticky =S,columnspan=2) imgFrame.grid(row=2,column = 0,columnspan = 2)
def __init__(self): tk.Toplevel.__init__(self) self.title('Data Pretreatment') self.layout = { 'global': { 'start': { 'x': 15, 'y': 20 }, 'space': { 'x': 15, 'y': 25 }, 'tiny_space': { 'x': 5, 'y': 10 } } } self.pretreatment_entity = None self.window_width = 600 self.window_height = 220 self.layout_utils = LayoutGUI(self.layout, self.window_width) screenwidth = self.winfo_screenwidth() screenheight = self.winfo_screenheight() size = '%dx%d+%d+%d' % (self.window_width, self.window_height, (screenwidth - self.window_width) / 2, (screenheight - self.window_height) / 2) self.geometry(size) # ============================= Group 4 ===================================== self.label_frame_pretreatment = ttk.Labelframe( self, text='Data Pretreatment') self.label_frame_pretreatment.place( x=self.layout['global']['start']['x'], y=self.layout['global']['start']['y'], width=575, height=150) # 帧拼接 - 输入框 self.concat_frames_val = tk.StringVar() self.concat_frames_val.set("") self.concat_frames_entry = ttk.Entry( self, textvariable=self.concat_frames_val, justify=tk.LEFT) self.concat_frames_entry['state'] = tk.DISABLED # 帧拼接 - 复选框 self.concat_frames_check_val = tk.IntVar() self.concat_frames_check = ttk.Checkbutton( self, text='GIF Frame Stitching', variable=self.concat_frames_check_val, onvalue=1, offvalue=0, command=lambda: self.check_btn_event( src=self.concat_frames_check_val, entry=self.concat_frames_entry)) self.layout_utils.inside_widget( src=self.concat_frames_check, target=self.label_frame_pretreatment, width=140, height=20, ) # 帧拼接 - 布局 self.layout_utils.next_to_widget(src=self.concat_frames_entry, target=self.concat_frames_check, width=100, height=20, tiny_space=True) # 帧融合 - 输入框 self.blend_frames_val = tk.StringVar() self.blend_frames_val.set("") self.blend_frames_entry = ttk.Entry(self, textvariable=self.blend_frames_val, justify=tk.LEFT) self.blend_frames_entry['state'] = tk.DISABLED # 帧融合 - 复选框 self.blend_frames_check_val = tk.IntVar() self.blend_frames_check_val.set(0) self.blend_frames_check = ttk.Checkbutton( self, text='GIF Blend Frame', variable=self.blend_frames_check_val, onvalue=1, offvalue=0, command=lambda: self. check_btn_event(src=self.blend_frames_check_val, entry=self.blend_frames_entry)) # 帧融合 - 布局 self.layout_utils.next_to_widget(src=self.blend_frames_check, target=self.concat_frames_entry, width=120, height=20, tiny_space=False) self.layout_utils.next_to_widget(src=self.blend_frames_entry, target=self.blend_frames_check, width=110, height=20, tiny_space=True) # 替换透明 - 复选框 self.replace_transparent_check_val = tk.IntVar() self.replace_transparent_check = ttk.Checkbutton( self, text='Replace Transparent', variable=self.replace_transparent_check_val, onvalue=1, offvalue=0) self.layout_utils.below_widget( src=self.replace_transparent_check, target=self.concat_frames_check, width=140, height=20, ) # 水平拼接 - 复选框 self.horizontal_stitching_check_val = tk.IntVar() self.horizontal_stitching_check_val.set(0) self.horizontal_stitching_check = ttk.Checkbutton( self, text='Horizontal Stitching', variable=self.horizontal_stitching_check_val, onvalue=1, offvalue=0) self.layout_utils.next_to_widget(src=self.horizontal_stitching_check, target=self.replace_transparent_check, width=130, height=20, tiny_space=False) # 二值化 - 标签 self.binaryzation_text = ttk.Label(self, text='Binaryzation', anchor=tk.W) self.layout_utils.next_to_widget( src=self.binaryzation_text, target=self.horizontal_stitching_check, width=75, height=20, tiny_space=False) # 二值化 - 输入框 self.binaryzation_val = tk.IntVar() self.binaryzation_val.set(-1) self.binaryzation_entry = ttk.Entry(self, textvariable=self.binaryzation_val, justify=tk.LEFT) self.layout_utils.next_to_widget(src=self.binaryzation_entry, target=self.binaryzation_text, width=55, height=20, tiny_space=True) # 保存 - 按钮 self.btn_save = ttk.Button(self, text='Save Configuration', command=lambda: self.save_conf()) self.layout_utils.widget_from_right( src=self.btn_save, target=self.label_frame_pretreatment, width=120, height=24, tiny_space=True)
def init_widgets(master: ttk.Frame) -> Optional[tk.Widget]: """Construct the widgets, returning the configuration button. If no signages are defined, this returns None. """ if not any(Signage.all()): return ttk.Label(master) window.resizable(True, True) window.title(_('Configure Signage')) frame_selected = ttk.Labelframe( window, text=_('Selected'), relief='raised', labelanchor='n', ) canv_all = tk.Canvas(window) scroll = tk_tools.HidingScroll(window, orient='vertical', command=canv_all.yview) canv_all['yscrollcommand'] = scroll.set name_label = ttk.Label(window, text='', justify='center') frame_preview = ttk.Frame(window, relief='raised', borderwidth=4) frame_selected.grid(row=0, column=0, sticky='nsew') ttk.Separator(orient='horiz').grid(row=1, column=0, sticky='ew') name_label.grid(row=2, column=0) frame_preview.grid(row=3, column=0, pady=4) canv_all.grid(row=0, column=1, rowspan=4, sticky='nsew') scroll.grid(row=0, column=2, rowspan=4, sticky='ns') window.columnconfigure(1, weight=1) window.rowconfigure(3, weight=1) tk_tools.add_mousewheel(canv_all, canv_all, window) preview_left = ttk.Label(frame_preview, anchor='e') preview_right = ttk.Label(frame_preview, anchor='w') img.apply(preview_left, IMG_BLANK) img.apply(preview_right, IMG_BLANK) preview_left.grid(row=0, column=0) preview_right.grid(row=0, column=1) try: sign_arrow = Signage.by_id('SIGN_ARROW') except KeyError: LOGGER.warning('No arrow signage defined!') sign_arrow = None hover_arrow = False hover_toggle_id = None hover_sign: Optional[Signage] = None def hover_toggle() -> None: """Toggle between arrows and dual icons.""" nonlocal hover_arrow, hover_toggle_id hover_arrow = not hover_arrow if hover_sign is None: return if hover_arrow and sign_arrow: left = hover_sign.dnd_icon right = sign_arrow.dnd_icon else: try: left = Signage.by_id(hover_sign.prim_id or '').dnd_icon except KeyError: left = hover_sign.dnd_icon try: right = Signage.by_id(hover_sign.sec_id or '').dnd_icon except KeyError: right = IMG_BLANK img.apply(preview_left, left) img.apply(preview_right, right) hover_toggle_id = TK_ROOT.after(1000, hover_toggle) def on_hover(slot: dragdrop.Slot[Signage]) -> None: """Show the signage when hovered.""" nonlocal hover_arrow, hover_sign if slot.contents is not None: name_label['text'] = _('Signage: {}').format(slot.contents.name) hover_sign = slot.contents hover_arrow = True hover_toggle() else: on_leave(slot) def on_leave(slot: dragdrop.Slot[Signage]) -> None: """Reset the visible sign when left.""" nonlocal hover_toggle_id, hover_sign name_label['text'] = '' hover_sign = None if hover_toggle_id is not None: TK_ROOT.after_cancel(hover_toggle_id) hover_toggle_id = None img.apply(preview_left, IMG_BLANK) img.apply(preview_right, IMG_BLANK) drag_man.reg_callback(dragdrop.Event.HOVER_ENTER, on_hover) drag_man.reg_callback(dragdrop.Event.HOVER_EXIT, on_leave) for i in range(3, 31): SLOTS_SELECTED[i] = slot = drag_man.slot( frame_selected, source=False, label=f'00:{i:02g}' ) row, col = divmod(i-3, 4) slot.grid(row=row, column=col, padx=1, pady=1) prev_id = DEFAULT_IDS.get(i, '') if prev_id: try: slot.contents = Signage.by_id(prev_id) except KeyError: LOGGER.warning('Missing sign id: {}', prev_id) for sign in sorted(Signage.all(), key=lambda s: s.name): if not sign.hidden: slot = drag_man.slot(canv_all, source=True) slot.contents = sign drag_man.flow_slots(canv_all, drag_man.sources()) canv_all.bind( '<Configure>', lambda e: drag_man.flow_slots(canv_all, drag_man.sources()), ) def hide_window() -> None: """Hide the window.""" window.withdraw() drag_man.unload_icons() img.apply(preview_left, IMG_BLANK) img.apply(preview_right, IMG_BLANK) def show_window() -> None: """Show the window.""" drag_man.load_icons() window.deiconify() utils.center_win(window, TK_ROOT) window.protocol("WM_DELETE_WINDOW", hide_window) return ttk.Button( master, text=_('Configure Signage'), command=show_window, )
def create_interface(self): # Add elements to the menu bar self.create_menu_bar() # Creates the spectroscopy frame self.spectroscopy_frame = ttk.Frame(master=self.master.control_frame) self.spectroscopy_frame.grid(column=0, row=0, sticky=(tk.EW)) self.spectroscopy_frame.columnconfigure(0, weight=1) # Hardware widgets hardware_frame = ttk.Labelframe(self.spectroscopy_frame, text='Selected hardware:', padding=(0, 5, 0, 15)) hardware_frame.columnconfigure(0, weight=1) hardware_frame.grid(column=0, row=0, sticky=(tk.EW)) self.mono_var = tk.StringVar() self.adq_var = tk.StringVar() self.monochromator_box = ttk.Combobox(master=hardware_frame, textvariable=self.mono_var, state="readonly") self.adquisition_box = ttk.Combobox(master=hardware_frame, textvariable=self.adq_var, state="readonly") self.monochromator_box.bind('<<ComboboxSelected>>', self.select_monochromator) self.adquisition_box.bind('<<ComboboxSelected>>', self.select_adquisition) self.monochromator_box.grid(column=0, row=0, sticky=(tk.EW)) self.adquisition_box.grid(column=0, row=1, sticky=(tk.EW)) # Set widgets --------------------------------- set_frame = ttk.Labelframe(self.spectroscopy_frame, text='Set:', padding=(0, 5, 0, 15)) set_frame.columnconfigure(1, weight=1) self.GoTo_button = ttk.Button(master=set_frame, text='GoTo', command=self.goto) self.GoTo_entry = ttk.Entry(master=set_frame, width=10) self.GoTo_entry.insert(0, '700.0') self.integration_time_button = ttk.Button(master=set_frame, text='Integration time (ms)', command=self.update_integration_time) self.integration_time_entry = ttk.Entry(master=set_frame, width=10) self.integration_time_entry.insert(0, '300') self.waiting_time_button = ttk.Button(master=set_frame, text='Waiting time (ms)', command=self.update_waiting_time) self.waiting_time_entry = ttk.Entry(master=set_frame, width=10) self.waiting_time_entry.insert(0, '100') set_frame.grid(column=0, row=1, sticky=(tk.EW)) self.GoTo_button.grid(column=0, row=0, sticky=(tk.EW)) self.GoTo_entry.grid(column=1, row=0, sticky=(tk.EW)) self.integration_time_button.grid(column=0, row=2, sticky=(tk.EW)) self.integration_time_entry.grid(column=1, row=2, sticky=(tk.EW)) self.waiting_time_button.grid(column=0, row=3, sticky=(tk.EW)) self.waiting_time_entry.grid(column=1, row=3, sticky=(tk.EW)) # Live adquisition widgets live_frame = ttk.Labelframe(self.spectroscopy_frame, text='Live:', padding=(0, 5, 0, 15)) live_frame.columnconfigure(1, weight=1) live_frame.columnconfigure(2, weight=1) self.window_live_lbl = ttk.Label(master=live_frame, text="Window (points):") self.window_live_entry = ttk.Entry(master=live_frame, width=10) self.window_live_entry.insert(0, '100') self.record_live_button = ttk.Button(master=live_frame, text='Record', command=self.record_live) self.pause_live_button = ttk.Button(master=live_frame, text='Pause', state=tk.DISABLED, command=self.pause_live) live_frame.grid(column=0, row=2, sticky=(tk.EW)) self.window_live_lbl.grid(column=0, row=0, sticky=(tk.EW)) self.window_live_entry.grid(column=1, row=0, columnspan=2, sticky=(tk.EW)) self.record_live_button.grid(column=1, row=3, sticky=(tk.EW)) self.pause_live_button.grid(column=2, row=3, sticky=(tk.EW)) # Scan widgets --------------------------------- scan_frame = ttk.Labelframe(self.spectroscopy_frame, text='Scan:', padding=(0, 5, 0, 15)) scan_frame.columnconfigure(0, weight=1) Start_lbl = ttk.Label(master=scan_frame, text="Start (nm):") self.Start_entry = ttk.Entry(master=scan_frame) self.Start_entry.insert(0, '700.0') Stop_lbl = ttk.Label(master=scan_frame, text="Stop (nm):") self.Stop_entry = ttk.Entry(master=scan_frame) self.Stop_entry.insert(0, '900.0') Step_lbl = ttk.Label(master=scan_frame, text="Step (nm):") self.Step_entry = ttk.Entry(master=scan_frame) self.Step_entry.insert(0, '5.0') self.scan_button = ttk.Button(master=scan_frame, text='Run', command=self.start_stop_scan, width=7) self.pause_button = ttk.Button(master=scan_frame, text='Pause', state=tk.DISABLED, command=self.pause_scan, width=7) scan_frame.grid(column=0, row=3, sticky=(tk.EW)) Start_lbl.grid(column=0, row=0, sticky=(tk.EW)) self.Start_entry.grid(column=1, row=0, columnspan=2, sticky=(tk.EW)) Stop_lbl.grid(column=0, row=1, sticky=(tk.EW)) self.Stop_entry.grid(column=1, row=1, columnspan=2, sticky=(tk.EW)) Step_lbl.grid(column=0, row=2, sticky=(tk.EW)) self.Step_entry.grid(column=1, row=2, columnspan=2, sticky=(tk.EW)) self.scan_button.grid(column=1, row=3, sticky=(tk.EW)) self.pause_button.grid(column=2, row=3, sticky=(tk.EW)) # Background widgets self.background_frame = ttk.Labelframe(self.spectroscopy_frame, text='Background:', padding=(0, 5, 0, 15)) self.background_frame.columnconfigure(0, weight=1) self.background_frame.columnconfigure(1, weight=1) self.background_button = ttk.Button(master=self.background_frame, text='Get', command=self.get_background) self.clear_background_button = ttk.Button(master=self.background_frame, text='Clear', command=self.clear_background) self.background_frame.grid(column=0, row=4, sticky=(tk.NSEW)) self.background_button.grid(column=0, row=0, sticky=(tk.EW, tk.S)) self.clear_background_button.grid(column=1, row=0, sticky=(tk.EW, tk.S))
# display FPS frameRateLabel = Label(tabTracker, text="FPS", font=("Arial", 30)) frameRateLabel.pack(pady=20) # text widgte for displaying output text = Text(tabTracker) text.pack() # button to download data csvButton = Button(tabTracker, text="Download Data (.csv)", command=downloadData).pack() # settings testSettings = ttk.Labelframe(tabSettings, text="Eye Test Settings") testSettings.pack(pady=10) # label + slider for number of repetitions of the test repLabel = Label(testSettings, text="Number of Repetitions") repLabel.pack(pady=10) repSlider = Scale(testSettings, from_=1, to_=5, orient=HORIZONTAL, length=500) repSlider.pack(pady=30, padx=30) # checkboxes for data downloads visualCheckboxes = ttk.Labelframe(tabSettings, text="Data Download Settings") visualCheckboxes.pack(pady=20) cRealVar = BooleanVar() c1Var = BooleanVar()
def populate_main_frame(self): epadx = self.get_padding() ipadx = self.get_internal_padding() epady = epadx ipady = ipadx # Port port_label = ttk.Label(self.main_frame, text="Port") port_label.grid(row=1, column=1, sticky="w", padx=(epadx, 0), pady=(epady, 0)) self._port_desc_variable = tk.StringVar(value="") self._port_combo = ttk.Combobox(self.main_frame, exportselection=False, textvariable=self._port_desc_variable, values=[]) self._port_combo.state(["!disabled", "readonly"]) self._port_combo.grid(row=1, column=2, sticky="nsew", padx=ipadx, pady=(epady, 0)) port_reload_button = ttk.Button(self.main_frame, text="Reload", command=self._reload_ports) port_reload_button.grid(row=1, column=3, sticky="ew", padx=(0, epadx), pady=(epady, 0)) # Firmware firmware_label = ttk.Label(self.main_frame, text="Firmware") firmware_label.grid(row=2, column=1, sticky="w", padx=(epadx, 0), pady=(ipady, 0)) self._firmware_entry = ttk.Entry(self.main_frame, width=55) self._firmware_entry.grid(row=2, column=2, sticky="nsew", padx=ipadx, pady=(ipady, 0)) browse_button = ttk.Button(self.main_frame, text="Browse...", command=self._browse) browse_button.grid(row=2, column=3, sticky="we", padx=(0, epadx), pady=(ipady, 0)) # FLASH_MODE self._flashmode = tk.StringVar(None, "keep") flashmode_group = ttk.Labelframe(self.main_frame, text="Flash mode") flashmode_group.grid(row=4, column=1, columnspan=2, sticky="w", padx=(epadx, 0), pady=(ipady * 2, 0)) self._flashmode_keep_radiobutton = ttk.Radiobutton( flashmode_group, text="From image file (keep)", variable=self._flashmode, value="keep") self._flashmode_keep_radiobutton.grid(row=0, column=0, sticky="w") # self._flashmode_variable.value=False self._flashmode_qio_radiobutton = ttk.Radiobutton( flashmode_group, text="Quad I/O (qio)", variable=self._flashmode, value="qio") self._flashmode_qio_radiobutton.grid(row=0, column=1, sticky="w") self._flashmode_dio_radiobutton = ttk.Radiobutton( flashmode_group, text="Dual I/O (dio)", variable=self._flashmode, value="dio") self._flashmode_dio_radiobutton.grid(row=1, column=0, sticky="w") self._flashmode_dout_radiobutton = ttk.Radiobutton( flashmode_group, text="Dual Output (dout)", variable=self._flashmode, value="dout") self._flashmode_dout_radiobutton.grid(row=1, column=1, sticky="w") # Erase self._erase_variable = tk.BooleanVar(value=True) self._erase_checkbutton = ttk.Checkbutton( self.main_frame, text="Erase flash before installing", variable=self._erase_variable) self._erase_checkbutton.grid(row=6, column=1, columnspan=2, sticky="w", padx=(epadx, 0), pady=(ipady, epady)) self._reload_ports()
def __init__(self, master=None): # build ui toplevel_6 = tk.Toplevel(master) frame_4 = ttk.Frame(toplevel_6) createAP = ttk.Button(frame_4) createAP.config(default='normal', state='normal', takefocus=True, text='createAP') createAP.place(relx='0.86', rely='0.6', x='0', y='0') killAP = ttk.Button(frame_4) killAP.config(compound='top', cursor='arrow', text='killAP') killAP.place(relx='0.86', rely='0.79', x='0', y='0') config = ttk.Labelframe(frame_4) hotspotname = ttk.Label(config) hotspotname.config(anchor='w', cursor='arrow', takefocus=False, text='AP_Name:') hotspotname.place(anchor='nw', relx='0.0', rely='0.05', x='0', y='0') hotspotpassword = ttk.Label(config) hotspotpassword.config(text='Password:'******'nw', relx='0.0', rely='0.20', x='0', y='0') hotspot@ress = ttk.Label(config) [email protected](text='Ip@:') [email protected](anchor='nw', relx='0.0', rely='0.35', x='0', y='0') NumberUsers = ttk.Label(config) NumberUsers.config(text='Num°Users:') NumberUsers.place(anchor='nw', relx='0.', rely='0.50', x='0', y='0') entry_1 = ttk.Entry(config) _text_ = '''AP_Name''' entry_1.delete('0', 'end') entry_1.insert('0', _text_) entry_1.place(anchor='nw', relx='0.5', rely='0.05', x='0', y='0') entry_2 = ttk.Entry(config) _text_ = '''Password''' entry_2.delete('0', 'end') entry_2.insert('0', _text_) entry_2.place(anchor='nw', relx='0.5', rely='0.20', x='0', y='0') entry_3 = ttk.Entry(config) _text_ = '''Ip address''' entry_3.delete('0', 'end') entry_3.insert('0', _text_) entry_3.place(anchor='nw', relx='0.5', rely='0.35', x='0', y='0') entry_4 = ttk.Entry(config) _text_ = '''Num users''' entry_4.delete('0', 'end') entry_4.insert('0', _text_) entry_4.place(anchor='nw', relx='0.5', rely='0.50', x='0', y='0') config.config(cursor='arrow', height='200', text='Config', width='200') config.place(relheight='0.4', relwidth='0.50', relx='0.0', rely='0.14', x='0', y='0') QrCode = ttk.Labelframe(frame_4) qr = ttk.Button(QrCode) self.img_qr = tk.PhotoImage(file='qr.png') qr.config(compound='top', default='disabled', image=self.img_qr, takefocus=True) qr.place(anchor='nw', relheight='1.0', relwidth='1.0', relx='0.0', x='0', y='0') QrCode.config(height='200', text='QrCode', width='200') QrCode.place(anchor='nw', relheight='0.4', relwidth='0.49', relx='0.5', rely='0.14', x='0', y='0') LogDisplay = ttk.Labelframe(frame_4) treeview_2 = ttk.Treeview(LogDisplay) treeview_2.place(bordermode='inside', relheight='0.91', relwidth='0.9', rely='0.0', x='0', y='0') scrollbar_2 = ttk.Scrollbar(LogDisplay) scrollbar_2.config(orient='vertical') scrollbar_2.place(anchor='nw', relheight='1.0', relwidth='0.07', relx='0.83', rely='0.0', x='0', y='0') LogDisplay.config(height='200', relief='sunken', text='LogDisplay', width='200') LogDisplay.place(anchor='nw', relwidth='0.56', relx='0.0', rely='0.54', x='0', y='0') image = ttk.Button(frame_4) self.img_logo = tk.PhotoImage(file='logo.png') image.config(image=self.img_logo, state='normal', takefocus=False) image.place(anchor='nw', bordermode='inside', height='80', relheight='0.0', relwidth='0.33', relx='0.0', rely='0.0', width='100', x='0', y='0') frame_4.config(borderwidth='1', height='600', padding='0', relief='flat') frame_4.config(takefocus=True, text='LogDisplay', width='600') frame_4.pack(side='top') toplevel_6.config(height='500', relief='flat', width='500') toplevel_6.resizable(True, True) toplevel_6.title('wifiHotSpot') # Main widget self.mainwindow = toplevel_6
def __init__(self): super().__init__() # uncomment desired logging level #logging.basicConfig(format="%(asctime)s %(message)s", level=logging.DEBUG) logging.basicConfig(format="%(asctime)s %(message)s", level=logging.WARNING) self.mp4file = None self.dialog_dir = os.path.expanduser("~") # I don't know if there's a better a way, but this works self.popup_focus = None # build ui self.title("MP4 Analyser") self.columnconfigure(0, weight=1) self.rowconfigure(0, weight=1) self.geometry('1300x700') # create tabbed notebook self.nb = ttk.Notebook(self) self.nb.grid(column=0, row=0, sticky=(N, W, E, S)) # create left-right paned window and add to tabbed notebook self.p = ttk.Panedwindow(self.nb, orient=HORIZONTAL) self.nb.add(self.p, text="Box Information", padding=(5, 10, 5, 5)) # create top-bottom paned window self.p1 = ttk.Panedwindow(self.p, orient=VERTICAL) self.p1.grid(column=0, row=0, sticky=(N, W, E, S)) # first pane shown on left: self.f1 = ttk.Labelframe(self.p, text='Box Hierarchy') self.f1.grid(column=0, row=0, sticky=(N, W, E, S)) self.f1.columnconfigure(0, weight=1) self.f1.rowconfigure(0, weight=1) # box details shown top right self.f2 = ttk.Labelframe( self.p1, text='Box Details', width=750, ) # second pane self.f2.grid(column=0, row=0, sticky=(N, W, E, S)) self.f2.columnconfigure(0, weight=1) self.f2.rowconfigure(0, weight=1) # hex view shown bottom right self.f3 = ttk.Labelframe( self.p1, text='Hex View', width=750, ) # second pane self.f3.grid(column=0, row=0, sticky=(N, W, E, S)) self.f3.columnconfigure(0, weight=1) self.f3.rowconfigure(0, weight=1) # add seems to work left to right, top to bottom self.p.add(self.f1) self.p.add(self.p1) self.p1.add(self.f2) self.p1.add(self.f3) # tree view showing box hierarchy self.tree = ttk.Treeview(self.f1, show="tree") self.tree.grid(column=0, row=0, sticky=(N, W, E, S)) self.tree.column("#0", width=300) # Sub-classed auto hiding scroll bar self.scroll1 = AutoScrollbar(self.f1, orient=VERTICAL, command=self.tree.yview) self.scroll1.grid(column=1, row=0, sticky=(N, S)) self.tree['yscrollcommand'] = self.scroll1.set self.tree.bind('<ButtonRelease-1>', self.select_box) # text widget display details of selected box self.t = ReadOnlyText(self.f2, state='normal', width=120, height=24, wrap='none') self.t.grid(column=0, row=0, sticky=(N, W, E, S)) self.t.bind('<ButtonRelease-1>', self.check_if_selection) self.t.bind("<Button-3>", self.popup_sel) # Sub-classed auto hiding scroll bar self.scroll2 = AutoScrollbar(self.f2, orient=VERTICAL, command=self.t.yview) self.scroll2.grid(column=1, row=0, sticky=(N, S)) self.t['yscrollcommand'] = self.scroll2.set # text widget displaying hex self.thex = ReadOnlyText(self.f3, state='normal', width=120, height=15, wrap='none') self.thex.grid(column=0, row=0, sticky=(N, W, E, S)) self.thex.bind('<ButtonRelease-1>', self.check_if_selection) self.thex.bind("<Button-3>", self.popup_sel) # Sub-classed auto hiding scroll bar self.scroll3 = AutoScrollbar(self.f3, orient=VERTICAL, command=self.thex.yview) self.scroll3.grid(column=1, row=0, sticky=(N, S)) self.thex['yscrollcommand'] = self.scroll3.set # Sub-classed auto hiding scroll bar self.scroll4 = AutoScrollbar(self.f3, orient=HORIZONTAL, command=self.thex.xview) self.scroll4.grid(column=0, row=1, sticky=(W, E)) self.thex['xscrollcommand'] = self.scroll4.set # create a frame and as second tab to notebook self.f4 = ttk.Frame(self.nb) self.nb.add(self.f4, text="File Summary") # text widget display summary self.tsum = ReadOnlyText(self.f4, state='normal') self.tsum.pack(expand=True, fill='both') self.tsum.bind('<ButtonRelease-1>', self.check_if_selection) self.tsum.bind("<Button-3>", self.popup_sel) # build a menu bar self.option_add('*tearOff', FALSE) self.menubar = Menu(self) self.filemenu = Menu(self.menubar) self.filemenu.add_command(label="Open...", command=self.open_file) self.filemenu.add_separator() self.filemenu.add_command(label="Exit", command=self.quit) self.menubar.add_cascade(label="File", menu=self.filemenu) self.copymenu = Menu(self.menubar) self.copymenu.add_command(label="Copy Selection", command=self.copy_selection, state="disabled") self.menubar.add_cascade(label="Copy", menu=self.copymenu) self.config(menu=self.menubar) # pop-up menu self.rclickmenu = Menu(self.tsum) self.rclickmenu.add_command(label="Copy Selection", command=self.copy_selection, state="disabled") self.rclickmenu.add_command(label="Select All", command=self.select_all) # status bar self.statustext = StringVar() self.statustext.set("") self.status = Label(self, textvariable=self.statustext, bd=1, anchor=W) self.status.grid(column=0, row=1, columnspan=2, sticky=(W, E, S))
def __init__(self, master, UDP_ListenerEvent, Serial_ListenerEvent, ControllerEventLoop_ListenerEvent, controller): self.master = master master.title("Control Panel") self.controller = controller self.mainframe = tk.Frame(self.master, padding=(6, 6, 12, 12)) self.mainframe.grid(sticky='nwse') # Title title = tk.Label(self.mainframe, text="Ugly Controller V1.0", font=("TkDefaultFont", 20)) title.grid(row=0, column=0, columnspan=2) # Serial port label label = tk.Label(self.mainframe, text="Serial Port") label.grid(row=1, column=0) # Serial port dropdown self.availablePorts = [] self.serialPortVar = tkinter.StringVar() self.serialPortVar.set(None) self.portSelector = \ tk.OptionMenu(self.mainframe, self.serialPortVar, "") self.portSelector.configure(width=18) self.portSelector.bind("<Button-1>", self.refreshPorts) self.portSelector.grid(row=1, column=1) # Selector for automatic mode self.isAutomaticVar = tkinter.BooleanVar() self.isAutomaticVar.set(controller.isAutomatic) self.checkButton = tk.Checkbutton(self.mainframe, text="Automatic Mode", variable=self.isAutomaticVar, state=tkinter.ACTIVE, onvalue=True, offvalue=False, command=self.toggleAutomatic) self.checkButton.grid(row=2, column=0) # Live data frame. self.liveData = tk.Labelframe(self.mainframe, text="Live Data") self.liveData.grid(row=3, columnspan=3) # Label for milliseconds millisLabel = tk.Label(self.liveData, text="t: ") millisLabel.grid(row=4, column=0) self.millisVar = tkinter.DoubleVar() self.millisVar.set(0) self.millis = tk.Label(self.liveData, textvariable=self.millisVar) self.millis.grid(row=4, column=1, columnspan=2, sticky='w') # Label for z acceleration zAccelerationLabel = tk.Label(self.liveData, text="a: ") zAccelerationLabel.grid(row=5, column=0) self.zAccelerationVar = tkinter.DoubleVar() self.zAccelerationVar.set(0) self.zAcceleration = \ tk.Label(self.liveData, textvariable=self.zAccelerationVar) self.zAcceleration.grid(row=5, column=1, columnspan=2, sticky='w') # Control buttons self.controlButtons = [] buttonRow = 6 maxButtonColumns = 3 counter = 0 for name, value in cnt.ControllerStates: # Tiles the buttons from left to right, up to down rowToPlace = buttonRow + counter // maxButtonColumns colToPlace = counter % maxButtonColumns button = tk.Button(self.mainframe, text=name, state="normal", command=lambda v=value: self.controller. controllerEventQueue.put( (v, self.controller.write))) button.grid(row=rowToPlace, column=colToPlace) self.controlButtons.append(button) counter += 1 self.startTime = time.time() # Thread syncronization objects self.UDP_ListenerEvent = UDP_ListenerEvent self.UDP_ListenerEvent.set() self.Serial_ListenerEvent = Serial_ListenerEvent self.Serial_ListenerEvent.set() self.ControllerEventLoop_ListenerEvent = ControllerEventLoop_ListenerEvent self.ControllerEventLoop_ListenerEvent.set() self.uiEventQueue = queue.Queue() self.uiUpdatePeriod = 10 # This is in milliseconds self.master.after(self.uiUpdatePeriod, self._eventLoop)
menubar.add_cascade(label="Simulation", menu=simmenu) #the help menu helpmenu = tkinter.Menu(menubar, tearoff=0) helpmenu.add_command( label="About", command=lambda: messagebox.showinfo( "About", "The Interference Inference Interface\n\nhttp://lnmaurer.github.com/Interference-Inference-Interface\n\nCommit #69\n\nCopyright 2012 by Leon Maurer\n\nCode available under GNU Public License Version 2" )) menubar.add_cascade(label="Help", menu=helpmenu) root.config(menu=menubar) #The view frame viewFrame = ttk.Labelframe(root, text='View') viewFrame.grid(column=0, row=0, sticky='nsew', padx=5, pady=5) Ezcanvas = tkinter.Canvas(viewFrame, width=canvasX, height=canvasY) Ezcanvas.grid(column=0, row=0, columnspan=3, rowspan=3, sticky='nsew', padx=5, pady=5) HorizPlotCanvas = tkinter.Canvas(viewFrame, width=canvasX, height=plotD) HorizPlotCanvas.grid(column=0, row=3, columnspan=3,
#create 3 radiobutt radVar = tk.IntVar() rad1 = tk.Radiobutton(win, text="color1", variable=radVar, value=1, command=radCall) rad1.grid(column=0, row=4, sticky=tk.W) rad2 = tk.Radiobutton(win, text="color2", variable=radVar, value=2, command=radCall) rad2.grid(column=1, row=4, sticky=tk.W) rad3 = tk.Radiobutton(win, text="color3", variable=radVar, value=3, command=radCall) rad3.grid(column=2, row=4, sticky=tk.W) #add 3 label into a frame labelsFrame = ttk.Labelframe(win, text="همه ليبل ها اينجان") labelsFrame.grid(column=1, row=7, padx=20, pady=40) ttk.Label(labelsFrame, text="برچسب 1").grid(column=0, row=0) ttk.Label(labelsFrame, text="برچسب 2").grid(column=1, row=0) ttk.Label(labelsFrame, text="برچسب 3").grid(column=2, row=0) win.mainloop()
def redrawBarrierFrame(): """Each opening gets its own frame withing the barrier frame. This method redraws those.""" global barrierFrames global intVars global distStrVars global updateButtons global spinboxes gaps.sort() for f in barrierFrames: f.destroy() #get rid of old frames barrierFrames = [] updateButtons = [] #holds the buttons for updating the openings spinboxes = [ ] #holds the spinboxes for entering the top and bottom positions of the openings intVars = [] #need to save StringVars or else they get garbage collected distStrVars = [ ] #holds stringVars that report the distance from the center of the gaps to the slice intersection r = 3 #rows 0,1,2 already taken by widgets for adding an opeing for gap in gaps: oNum = r - 3 #opening number frame = ttk.Labelframe(barrierFrame, text="Opening {}".format(oNum)) frame.grid(column=0, row=r, columnspan=2, sticky='nesw', padx=5, pady=5) top = tkinter.IntVar() bottom = tkinter.IntVar() distStrVar = tkinter.StringVar() #the spinbox for the bottom of the opening ttk.Label(frame, text="Bottom:").grid(column=0, row=0, sticky='nes', padx=5, pady=5) #having the following work is kind of tricky; the default parameter in the lambda is critical. See <http://mail.python.org/pipermail/tutor/2005-November/043360.html> spinbox = tkinter.Spinbox(frame, width=4, textvariable=bottom, from_=0, to=canvasX, command=lambda n=oNum: spinboxChanged(n)) spinbox.bind( "<KeyRelease>", lambda arg, n=oNum: spinboxChanged(n) ) #any key runs the spinboxChanged method, which will enable or disable the 'update' button spinbox.grid(column=1, row=0, sticky='nsw', padx=5, pady=5) spinboxes.append(spinbox) #the spinbox for the top of the opening ttk.Label(frame, text="Top:").grid(column=0, row=1, sticky='nes', padx=5, pady=5) spinbox = tkinter.Spinbox(frame, width=4, textvariable=top, from_=0, to=canvasX, command=lambda n=oNum: spinboxChanged(n)) spinbox.bind("<KeyRelease>", lambda arg, n=oNum: spinboxChanged(n)) spinbox.grid(column=1, row=1, sticky='nsw', padx=5, pady=5) ttk.Label(frame, textvariable=distStrVar).grid(column=0, row=2, sticky='nes', padx=5, pady=5) spinboxes.append(spinbox) ub = ttk.Button(frame, text='Update Opening', state="disabled", command=lambda n=oNum: updateOpening(n)) ub.grid(column=0, row=3, sticky='nsew', columnspan=2, padx=5, pady=5) updateButtons.append(ub) ttk.Button(frame, text='Remove', command=lambda n=oNum: removeOpening(n)).grid(column=0, row=4, sticky='nsew', columnspan=2, padx=5, pady=5) top.set(gap[1]) bottom.set(gap[0]) intVars.append(top) intVars.append(bottom) distStrVars.append(distStrVar) barrierFrames.append(frame) r += 1 updateDistStrVars()
def create_widgets(self): self.font_H1 = tkf.Font(font=("Arial", 14)) self.font_H2 = tkf.Font(font=("Arial", 12)) self.font_H3 = tkf.Font(font=("Arial", 10)) # self.font_it = tkf.Font(font=("Arial", 10, "italic")) self.style = ttk.Style() self.style.configure("TLabelframe", padding=(5, 0, 5, 5)) self.style.configure("TButton", padding=4) self.style.configure("TSpinbox", padding=2) self.style.configure("TLabel", font=self.font_H3) def enable(self): self.state(statespec=('!disabled', )) ttk.Widget.enable = enable def disable(self): self.state(statespec=('disabled', '!focus')) ttk.Widget.disable = disable # >FRAME: CONSOLE self.frm_console = ttk.Frame(self) self.frm_console.grid(row=0, column=0, padx=2, pady=2, sticky='NESW') self.lbl_console = ttk.Label(self.frm_console, text='Output', font=self.font_H1) self.lbl_console.pack(side=tk.TOP) ttk.Separator(self.frm_console, orient='horizontal').pack(fill=tk.BOTH) self.lbx_console = tk.Listbox(self.frm_console, width=40, height=32) self.lbx_console.pack(fill=tk.BOTH, expand=True) # >FRAME: CONTROLS self.frm_control = ttk.Frame(self) self.frm_control.grid(row=0, column=1, padx=2, pady=2, sticky='NESW') self.lbl_control = ttk.Label(self.frm_control, text='Controls', font=self.font_H1) self.lbl_control.pack() # >>FRAME: CONNECTION ttk.Separator(self.frm_control, orient='horizontal').pack(fill=tk.BOTH) self.lfm_connect = ttk.Labelframe(self.frm_control, text='Connection') self.lfm_connect.pack(fill=tk.BOTH) self.lbl_port = ttk.Label(self.lfm_connect, text='Port ID:') self.lbl_port.grid(row=0, column=0, sticky='E') self.tbx_port_content = tk.StringVar(value='COM4') self.tbx_port = ttk.Entry(self.lfm_connect, textvariable=self.tbx_port_content, width=12) self.tbx_port.bind('<Key-Return>', self.btn_connect_click) self.tbx_port.grid(row=0, column=1) self.lbl_connected = ttk.Label(self.lfm_connect, text='Not Connected', background='red', width=14) self.lbl_connected.grid(row=0, column=10, rowspan=2, sticky='NS', padx=2, pady=2) self.btn_connect = ttk.Button(self.lfm_connect, text='Connect', command=self.btn_connect_click) self.btn_connect.grid(row=1, column=0) self.btn_connect.bind('<Key-Return>', lambda *_: self.btn_connect_click()) self.btn_disconnect = ttk.Button(self.lfm_connect, text='Disconnect', command=self.btn_disconnect_click) self.btn_disconnect.grid(row=1, column=1) self.btn_disconnect.bind('<Key-Return>', lambda *_: self.btn_disconnect_click()) # SETTINGS self.lfm_settings = ttk.Labelframe(self.frm_control, text='Settings') self.lfm_settings.pack(fill=tk.BOTH) self.lbl_a1_port = ttk.Label(self.lfm_settings, text='A1 Port:') self.lbl_a1_port.grid(row=11, column=0) self.sbx_a1_port = ttk.Spinbox(self.lfm_settings, from_=2, to=13, format='%.0f', width=2) self.sbx_a1_port.grid(row=11, column=1) self.lbl_a1_rest = ttk.Label(self.lfm_settings, text='A1 Rest:') self.lbl_a1_rest.grid(row=11, column=2) self.sbx_a1_rest = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A1Rest'))) self.sbx_a1_rest.bind('<Key-Return>', lambda *_: self.sbx_change('A1Rest')) self.sbx_a1_rest.grid(row=11, column=3) self.lbl_a1_untap = ttk.Label(self.lfm_settings, text='A1 Untap:') self.lbl_a1_untap.grid(row=11, column=4) self.sbx_a1_untap = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A1Untap'))) self.sbx_a1_untap.bind('<Key-Return>', lambda *_: self.sbx_change('A1Untap')) self.sbx_a1_untap.grid(row=11, column=5) self.lbl_a1_tap = ttk.Label(self.lfm_settings, text='A1 Tap:') self.lbl_a1_tap.grid(row=11, column=6) self.sbx_a1_tap = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A1Tap'))) self.sbx_a1_tap.bind('<Key-Return>', lambda *_: self.sbx_change('A1Tap')) self.sbx_a1_tap.grid(row=11, column=7) self.lbl_a2_port = ttk.Label(self.lfm_settings, text='A2 Port:') self.lbl_a2_port.grid(row=12, column=0) self.sbx_a2_port = ttk.Spinbox(self.lfm_settings, from_=2, to=13, format='%.0f', width=2) self.sbx_a2_port.grid(row=12, column=1) self.lbl_a2_rest = ttk.Label(self.lfm_settings, text='A2 Rest:') self.lbl_a2_rest.grid(row=12, column=2) self.sbx_a2_rest = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A2Rest'))) self.sbx_a2_rest.bind('<Key-Return>', lambda *_: self.sbx_change('A2Rest')) self.sbx_a2_rest.grid(row=12, column=3) self.lbl_a2_untap = ttk.Label(self.lfm_settings, text='A2 Untap:') self.lbl_a2_untap.grid(row=12, column=4) self.sbx_a2_untap = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A2Untap'))) self.sbx_a2_untap.bind('<Key-Return>', lambda *_: self.sbx_change('A2Untap')) self.sbx_a2_untap.grid(row=12, column=5) self.lbl_a2_tap = ttk.Label(self.lfm_settings, text='A2 Tap:') self.lbl_a2_tap.grid(row=12, column=6) self.sbx_a2_tap = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A2Tap'))) self.sbx_a2_tap.bind('<Key-Return>', lambda *_: self.sbx_change('A2Tap')) self.sbx_a2_tap.grid(row=12, column=7) self.lbl_a3_port = ttk.Label(self.lfm_settings, text='A3 Port:') self.lbl_a3_port.grid(row=13, column=0) self.sbx_a3_port = ttk.Spinbox(self.lfm_settings, from_=2, to=13, format='%.0f', width=2) self.sbx_a3_port.grid(row=13, column=1) self.lbl_a3_rest = ttk.Label(self.lfm_settings, text='A3 Rest:') self.lbl_a3_rest.grid(row=13, column=2) self.sbx_a3_rest = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A3Rest'))) self.sbx_a3_rest.bind('<Key-Return>', lambda *_: self.sbx_change('A3Rest')) self.sbx_a3_rest.grid(row=13, column=3) self.lbl_a3_untap = ttk.Label(self.lfm_settings, text='A3 Untap:') self.lbl_a3_untap.grid(row=13, column=4) self.sbx_a3_untap = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A3Untap'))) self.sbx_a3_untap.bind('<Key-Return>', lambda *_: self.sbx_change('A3Untap')) self.sbx_a3_untap.grid(row=13, column=5) self.lbl_a3_tap = ttk.Label(self.lfm_settings, text='A3 Tap:') self.lbl_a3_tap.grid(row=13, column=6) self.sbx_a3_tap = ttk.Spinbox( self.lfm_settings, from_=0, to=180, format='%.0f', width=4, command=(lambda *_: self.sbx_change('A3Tap'))) self.sbx_a3_tap.bind('<Key-Return>', lambda *_: self.sbx_change('A3Tap')) self.sbx_a3_tap.grid(row=13, column=7) self.lbl_timing = ttk.Label(self.lfm_settings, text='Timing (ms):') self.lbl_timing.grid(row=14, column=0, columnspan=2) self.sbx_timing = ttk.Spinbox( self.lfm_settings, from_=0, to=1000, increment=10, format='%.0f', width=4, command=(lambda *_: self.sbx_change('Timing'))) self.sbx_timing.bind('<Key-Return>', lambda *_: self.sbx_change('Timing')) self.sbx_timing.grid(row=14, column=2) self.lbl_tap_delay = ttk.Label(self.lfm_settings, text='Tap delay (ms):') self.lbl_tap_delay.grid(row=14, column=3, columnspan=2) self.sbx_tap_delay = ttk.Spinbox( self.lfm_settings, from_=0, to=500, increment=5, format='%.0f', width=4, command=(lambda *_: self.sbx_change('TapDelay'))) self.sbx_timing.bind('<Key-Return>', lambda *_: self.sbx_change('TapDelay')) self.sbx_tap_delay.grid(row=14, column=5) self.btn_save_config = ttk.Button(self.lfm_settings, text='Save current settings', command=self.btn_save_config_click) self.btn_save_config.grid(row=20, column=0, columnspan=8) self.btn_save_config.bind('<Key-Return>', lambda *_: self.btn_save_config_click()) # RUN self.lfm_run = ttk.Labelframe(self.frm_control, text='Run') self.lfm_run.pack(fill=tk.BOTH) self.lbl_script = ttk.Label(self.lfm_run, text='Script:') self.lbl_script.grid(row=0, column=0, sticky='E') self.cbx_script = ttk.Combobox(self.lfm_run, state='readonly', width=14) self.cbx_script.grid(row=0, column=1, sticky='W') self.lbl_times = ttk.Label(self.lfm_run, text='Times:') self.lbl_times.grid(row=1, column=0, sticky='E') self.sbx_times = ttk.Spinbox(self.lfm_run, from_=-1, to=99, format='%.0f', width=3) self.sbx_times.grid(row=1, column=1, sticky='W') self.sbx_times.set(-1) self.btn_start_timer = ttk.Button(self.lfm_run, text='Start TimerWorker', command=self.btn_start_timer_click) self.btn_start_timer.grid(row=0, column=5, rowspan=2) self.btn_start_timer.disable() self.btn_start_timer.bind('<Key-Return>', lambda *_: self.btn_start_timer_click()) self.btn_stop = ttk.Button(self.lfm_run, text='Stop', command=self.btn_stop_click) self.btn_stop.grid(row=0, column=6, rowspan=2) self.btn_stop.bind('<Key-Return>', lambda *_: self.btn_stop_click()) self.center_root()
def __setup_widgets(self): """Create and layout widgets.""" paned = ttk.Panedwindow() # top frame top = ttk.Frame(paned) top.pack(side='top', fill='both', expand=True) # top left frame (widget listing, images) left = ttk.Frame(top) left.pack(side='left', fill='y') # widget listing self._tv_widgets = ScrolledTreeview(left, selectmode='browse') self._tv_widgets.pack(side='top', fill='y', expand=True) self._tv_widgets.heading('#0', text="Widgets") self._tv_widgets.bind('<<TreeviewSelect>>', self._change_preview) # top right frame (preview, style notebook, images) topright = ttk.Frame(top) topright.pack(side='top', fill='both', expand=True) # preview area self._preview_area = ttk.Frame(topright, width=200) self._preview_area.pack(side='left', expand=True, fill='both', padx=12) # options, images and themes frames = ttk.Frame(topright) frames.pack(side='right', anchor='n') # style notebook and frames styleframe = ttk.Labelframe(frames, text="Style", padding=6) styleframe.pack(fill='both') stylenb = ttk.Notebook(styleframe) # style configure self._configframe = ttk.Frame(stylenb, padding=6) newopt = ttk.Button(self._configframe, text="Add option", command=lambda: self._new_frame_opt(self._configframe, self._style.configure)) newopt.pack(side='bottom', anchor='e') self._configframe.pack() # style map self._mapframe = ttk.Frame(stylenb, padding=6) newmopt = ttk.Button(self._mapframe, text="Add option", command=lambda: self._new_frame_opt(self._mapframe, self._style.map)) newmopt.pack(side='bottom', anchor='e') self._mapframe.pack() # style elements elemframe = ttk.Frame(stylenb, padding=6) self._elems = ttk.Combobox(elemframe, state='readonly') self._elems.pack(fill='x', pady=6) newelem = ttk.Button(elemframe, text="New element", command=lambda: self._new_element(elemframe)) newelem.pack(side='bottom', anchor='e') elemframe.pack() # themes themeframe = ttk.Frame(stylenb, padding=6) themeframe.pack(padx=6) themes = ttk.Combobox(themeframe, values=self._style.theme_names(), state='readonly') themes.set("Pick one") themes.bind('<<ComboboxSelected>>', self._change_theme) themes.pack(fill='x', pady=6) # add frames to the style notebook stylenb.add(self._configframe, text="Configure") stylenb.add(self._mapframe, text="Map") stylenb.add(elemframe, text="Elems") stylenb.add(themeframe, text="Themes") stylenb.pack(fill='both', anchor='n') # images frame imagesframe = ttk.Labelframe(frames, padding=6) imagesframe.pack(fill='x', pady=12) iframe = ttk.Frame(imagesframe) imagesframe['labelwidget'] = iframe self.__img_add = Tkinter.PhotoImage(file=os.path.join(IMAGE_DIR, 'add.gif')) self.__img_edit = Tkinter.PhotoImage(file=os.path.join(IMAGE_DIR, 'stock_properties.gif')) self.__img_del = Tkinter.PhotoImage(file=os.path.join(IMAGE_DIR, 'remove.gif')) ilbl = ttk.Label(iframe, text="Images") iadd = ttk.Button(iframe, image=self.__img_add.name, style='Toolbutton', command=self._new_image) iedit = ttk.Button(iframe, image=self.__img_edit.name, style='Toolbutton', command=self._edit_image) iremove = ttk.Button(iframe, image=self.__img_del.name, style='Toolbutton', command=self._remove_image) ilbl.pack(side='left') iadd.pack(side='left') iedit.pack(side='left') iremove.pack(side='left') self._imagelist = ttk.Combobox(imagesframe, state='readonly') self._imagelist.pack(fill='x') # bottom frame (layout) bottom = ttk.Frame(paned) bottom.pack(side='bottom') layoutframe = ttk.Labelframe(bottom, padding=6) layoutframe.pack(fill='both', expand=True) lframe = ttk.Frame(layoutframe) layoutframe['labelwidget'] = lframe self.__img_apply = Tkinter.PhotoImage(file=os.path.join(IMAGE_DIR, 'dialog-apply.gif')) self.__img_reset = Tkinter.PhotoImage(file=os.path.join(IMAGE_DIR, 'back.gif')) llbl = ttk.Label(lframe, text="Layout") apply_btn = ttk.Button(lframe, image=self.__img_apply.name, command=self._apply_layout, style='Toolbutton') reset_btn = ttk.Button(lframe, image=self.__img_reset.name, command=self._reset_layout, style='Toolbutton') llbl.pack(side='left') apply_btn.pack(side='left') reset_btn.pack(side='left') # layouttext textframe = ttk.Frame(layoutframe) textframe.pack(side='left', fill='both', expand=True) self.layouttext = ScrolledText(textframe) self.layouttext.layout = None self.layouttext.pack(expand=True, fill='both') paned.add(top, weight=1) paned.add(bottom, weight=0) paned.pack(fill='both', expand=True) self.__funcid = paned.bind('<Map>', self.__adjust_sash)
def __init__(self, parent, default=0, text=None, **kwargs): self.frame = ttk.Labelframe(parent, text=text) super().__init__(self.frame, default=default, **kwargs) self.pack()
def startGUI(): filepath = os.sep.join((os.path.expanduser('~'), 'Desktop')) # filename = 'TestJPEG.jpeg' tf = 'PlotTextFile.txt' if os.path.isfile(tf): os.remove(tf) def heaterpoweron(): try: HeaterPowerStatus.set('Heater ON') heaterbutton.configure(text='Heater OFF') heaterbutton.configure(command=heaterpoweroff) global HEATPWM HEATPWM = RPiGPIO.Controller(12, 100) HEATPWM.startup() heaterbutton.after(1000, heaterinput) except (RuntimeError, AttributeError, NameError): HeaterPowerStatus.set('Heater OFF') heaterbutton.configure(text='Heater ON') heaterbutton.configure(command=heaterpoweron) messagebox.showinfo( message= 'Heater not detected on pin 12, please make sure its connected.' ) def heaterinput(): try: if HeaterPowerStatus.get() != 'Heater OFF': value = float(temp.get()) sensor = float(TemperatureNumber[1]) HEATPWM.HeaterPID(value, sensor) heaterbutton.after(1000, heaterinput) except ValueError: HEATPWM.shutdown() HeaterPowerStatus.set('Heater OFF') heaterbutton.configure(text='Heater ON') heaterbutton.configure(command=heaterpoweron) messagebox.showinfo( message='Please type number into Target Temperature box.') heaterbutton.after(1000, heaterinput) def heaterpoweroff(): try: HEATPWM.shutdown() HeaterPowerStatus.set('Heater OFF') heaterbutton.configure(text='Heater ON') heaterbutton.configure(command=heaterpoweron) except ValueError: pass def onewireon(): try: global ids global TemperatureNumber ids = OneWire.getOneWireID() TemperatureDegrees, TemperatureNumber = OneWire.getTempList() templabel.config(text=TemperatureDegrees) MultiPlot.GeneratePlotDataFile(tf, TemperatureNumber, start_time) if not ids: TempSensorPowerStatus.set('Temp. Sensor OFF') templabel.config(text='NULL') else: TempSensorPowerStatus.set('Temp. Sensor ON') templabel.after(1000, onewireon) except IndexError: pass def tempplot(): try: y_title_axis = [ 'Temperature Plot', 'Temperature vs Time', 't(s)', 'T(C)', 'Sensor' ] MultiPlot.Plot(tf, len(ids), y_title_axis) except KeyError: messagebox.showinfo(message='No temperature sensor connected.') def savefile(): tempfilename = 'TemperatureData.csv' y_variablename = 'TemperatureSensor' MultiPlot.SaveToCsv(tf, tempfilename, filepath, len(ids), y_variablename) messagebox.showinfo(message='File saved to directory.') def pumppoweron(): try: PumpPowerStatus.set("Pump ON") pumpbutton.configure(text='Pump OFF') pumpbutton.configure(command=pumppoweroff) global PUMPPWM PUMPPWM = RPiGPIO.Controller(11, 100) PUMPPWM.startup() except ValueError: PumpPowerStatus.set("Pump OFF") pumpbutton.configure(text='Pump ON') pumpbutton.configure(command=pumppoweron) PUMPPWM.shutdown() messagebox.showinfo( message='Please type number from 0-100 into Pump text box.') except (RuntimeError, AttributeError, NameError): PumpPowerStatus.set("Pump OFF") pumpbutton.configure(text='Pump ON') pumpbutton.configure(command=pumppoweron) messagebox.showinfo( message= 'Pump not detected, Please make sure pump is connected to pin 11' ) def pumppoweroff(): try: PumpPowerStatus.set("Pump OFF") pumpbutton.configure(text='Pump ON') pumpbutton.configure(command=pumppoweron) PUMPPWM.shutdown() except (AttributeError, RuntimeError): messagebox.showinfo( message='Please make sure pump is connected to pin 11.') def pumppowerchange(): try: PUMPPWM.setIntensity(pumpintensity.get()) except ValueError: messagebox.showinfo( message='Please type number from 0-100 into Pump text box.') # def directorychosen(): # try: # global filepath # filepath = filedialog.askdirectory() # except ValueError: # pass root = Tk() root.title("Coliform Control GUI") mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) temp = StringVar() PumpPowerStatus = StringVar() HeaterPowerStatus = StringVar() TempSensorPowerStatus = StringVar() pumpintensity = StringVar() HeaterPowerStatus.set('Heater OFF') PumpPowerStatus.set("Pump OFF") masterpane = ttk.Panedwindow(mainframe, orient=VERTICAL) toppane = ttk.Panedwindow(masterpane, orient=HORIZONTAL) f2 = ttk.Labelframe(toppane, text='Temperature Sensor:', width=100, height=100) f3 = ttk.Labelframe(toppane, text='Heater:', width=100, height=100) toppane.add(f2) toppane.add(f3) masterpane.add(toppane) templabel = ttk.Label(f2) templabel.grid(column=1, row=2, sticky=W) ttk.Label(f2, text="Temperature:").grid(column=1, row=1, sticky=W) ttk.Button(f2, text='Show Plot', command=tempplot).grid(column=2, row=1, sticky=E) ttk.Button(f2, text='Save Data File', command=savefile).grid(column=2, row=2, sticky=(S, E)) temp_entry = ttk.Entry(f3, width=7, textvariable=temp) temp_entry.grid(column=2, row=1, sticky=(W, E)) ttk.Label(f3, text="Target Temperature:").grid(column=1, row=1, sticky=W) heaterbutton = ttk.Button(f3, text="Heater ON", command=heaterpoweron) heaterbutton.grid(column=1, row=2, sticky=W) bottompane = ttk.Panedwindow(masterpane, orient=HORIZONTAL) f1 = ttk.Labelframe(bottompane, text='Status:', width=100, height=100) f4 = ttk.Labelframe(bottompane, text='Pump:', width=100, height=100) bottompane.add(f4) bottompane.add(f1) masterpane.add(bottompane) pumpbutton = ttk.Button(f4, text="Power ON", command=pumppoweron) pumpbutton.grid(column=1, row=1, sticky=W) pumpchangebutton = ttk.Button(f4, text="Submit", command=pumppowerchange) pumpchangebutton.grid(column=1, row=3, sticky=(W, E)) pump_entry = ttk.Entry(f4, width=4, textvariable=pumpintensity) pump_entry.grid(column=1, row=2, sticky=(W, E)) ttk.Label(f1, textvariable=TempSensorPowerStatus).grid(column=1, row=1, sticky=(W, E)) ttk.Label(f1, textvariable=PumpPowerStatus).grid(column=1, row=2, sticky=(W, E)) ttk.Label(f1, textvariable=HeaterPowerStatus).grid(column=1, row=3, sticky=(W, E)) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) temp_entry.focus() start_time = time.time() onewireon() heaterinput() root.mainloop()
def __init__(self, parent, values, text=None, callback=None): self.frame = ttk.Labelframe(parent, text=text) super(LabeledCombobox, self).__init__(self.frame, values, callback=callback) self.pack()
def startCameraGUI(): tf = 'PlotTextFile.txt' if os.path.isfile(tf): os.remove(tf) # filepath = os.sep.join((os.path.expanduser('~'), 'Desktop')) def setnormaloptions(): try: exposuremode.set('') shutterspeedvar.set(0) # frameratevar.set('25') isovar.set(0) resolutionvary.set(1944) resolutionvarx.set(2592) delayvar.set(2) brightnessvar.set(50) previewtimeout.set(10) zoomvar.set('0.0,0.0,1.0,1.0') awbvar.set('') except ValueError: pass def setdarkoptions(): try: exposuremode.set('') shutterspeedvar.set(6) # frameratevar.set('1/6') isovar.set(0) resolutionvary.set(1944) resolutionvarx.set(2592) delayvar.set(30) brightnessvar.set(50) previewtimeout.set(30) zoomvar.set('0.0,0.0,1.0,1.0') awbvar.set('') except ValueError: pass def picturetaken(): try: # global filename # filename = datetime.strftime(datetime.now(),"%Y.%m.%d-%H:%M:%S")+'.jpeg' iso = 0 resolution = '2592, 1944' delay = 30 brightness = 50 contrast = 0 shutterspeed = 0 global rgb_array if isovar.get(): iso = isovar.get() if delayvar.get(): delay = delayvar.get() if resolutionvarx.get() and resolutionvary.get(): resolution = (resolutionvarx.get(), resolutionvary.get()) if brightnessvar.get(): brightness = brightnessvar.get() if contrastvar.get(): contrast = contrastvar.get() if shutterspeedvar.get(): shutterspeed = shutterspeedvar.get() * 10**6 # if frameratevar.get(): # if '/' in frameratevar.get(): # framelist = frameratevar.get().split('/') # if len(framelist) == 2: # framerate = Fraction(int(framelist[0]), int(framelist[1])) # else: # framerate = int(frameratevar.get()) rgb_array = RPiCamera.takePicture( iso=iso, timeout=delay, resolution=resolution, exposure=exposuremode.get(), brightness=brightness, contrast=contrast, shutterspeed=shutterspeed, zoom=tuple(map(float, zoomvar.get().split(','))), awb_mode=awbvar.get()) red_intensity, green_intensity, blue_intensity, intensity = RPiCamera.returnIntensity( rgb_array) intensity_array = '\n'.join([ 'R:' + '{:.3f}'.format(red_intensity), 'G:' + '{:.3f}'.format(green_intensity), 'B:' + '{:.3f}'.format(blue_intensity), 'I:' + '{:.3f}'.format(intensity) ]) intensitylabel.config(text=intensity_array) # messagebox.showinfo(message='JPEG created on directory') except (UnboundLocalError, IndexError): # messagebox.showinfo(message='Arduino not found, make sure it is connected to USB port') pass def showimageplot(): try: RPiCamera.showPlot(rgb_array) except ValueError: messagebox.showinfo( message= 'File not found, make sure take picture before showing plot.') def showimage(): try: RPiCamera.showImage(rgb_array) except ValueError: messagebox.showinfo( message= 'File not found, make sure take picture before showing Image.') # except AttributeError: # pass def showredimage(): try: RPiCamera.showImage(rgb_array, 'r') except ValueError: messagebox.showinfo( message= 'File not found, make sure take picture before showing Image.') # except AttributeError: # pass def showgreenimage(): try: RPiCamera.showImage(rgb_array, 'g') except ValueError: messagebox.showinfo( message= 'File not found, make sure take picture before showing Image.') def showblueimage(): try: RPiCamera.showImage(rgb_array, 'b') except ValueError: messagebox.showinfo( message= 'File not found, make sure take picture before showing Image.') # def directorychosen(): # try: # global filepath # filepath = filedialog.askdirectory() # except ValueError: # pass def importimage(): global rgb_array rgb_array = RPiCamera.importImage() red_intensity, green_intensity, blue_intensity, intensity = RPiCamera.returnIntensity( rgb_array) intensity_array = '\n'.join([ 'R:' + '{:.3f}'.format(red_intensity), 'G:' + '{:.3f}'.format(green_intensity), 'B:' + '{:.3f}'.format(blue_intensity), 'I:' + '{:.3f}'.format(intensity) ]) intensitylabel.config(text=intensity_array) def saveimage(): RPiCamera.saveImage(rgb_array) def saveallimages(): foldername = 'ISO={}-Delay={}-Resolution={}x{}-Brightness={}-Contrast={}-ShutterSpeed={}' \ '-Exposure={}-AutoWhiteBalance={}-' \ 'Zoom={}'.format(isovar.get(), delayvar.get(), resolutionvarx.get(), resolutionvary.get(), brightnessvar.get(), contrastvar.get(), shutterspeedvar.get(), exposuremode.get(), awbvar.get(), zoomvar.get()) RPiCamera.saveAllImages(rgb_array, foldername) messagebox.showinfo(message='Finished Saving to Directory.') def preview(): iso = 0 resolution = '2592, 1944' brightness = 50 contrast = 0 shutterspeed = 0 # framerate = 25 timeout = 10 global rgb_array if isovar.get(): iso = isovar.get() if previewtimeout.get(): timeout = previewtimeout.get() if resolutionvarx.get() and resolutionvary.get(): resolution = (resolutionvarx.get(), resolutionvary.get()) if brightnessvar.get(): brightness = brightnessvar.get() if contrastvar.get(): contrast = contrastvar.get() if shutterspeedvar.get(): shutterspeed = shutterspeedvar.get() # if frameratevar.get(): # if '/' in frameratevar.get(): # framelist = frameratevar.get().split('/') # if len(framelist) == 2: # framerate = Fraction(int(framelist[0]), int(framelist[1])) # else: # framerate = int(frameratevar.get()) # RPiCamera.startPreview(iso=iso, timeout=timeout, resolution=resolution, exposure=exposuremode.get(), brightness=brightness, contrast=contrast, shutterspeed=shutterspeed, zoom=tuple(map(float, zoomvar.get().split(','))), awb_mode=awbvar.get()) # def realtimeplot(): # MultiPlot.GeneratePlotDataFile(tf, RPiCamera.returnIntensity(rgb_array), start_time) root = Tk() root.title("Image Processing GUI") mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) isovar = IntVar() resolutionvarx = IntVar() resolutionvary = IntVar() exposuremode = StringVar() delayvar = IntVar() contrastvar = IntVar() brightnessvar = IntVar() shutterspeedvar = IntVar() # frameratevar = StringVar() previewtimeout = IntVar() zoomvar = StringVar() awbvar = StringVar() exposuremode.set('') shutterspeedvar.set(0) # frameratevar.set('1/6') isovar.set(0) resolutionvary.set(1944) resolutionvarx.set(2592) delayvar.set(5) brightnessvar.set(50) previewtimeout.set(10) zoomvar.set('0.0,0.0,1.0,1.0') awbvar.set('') masterpane = ttk.Panedwindow(mainframe, orient=VERTICAL) midpane = ttk.Panedwindow(masterpane, orient=VERTICAL) f3 = ttk.Labelframe(midpane, text='Camera Options:', width=100, height=100) f4 = ttk.Labelframe(midpane, text='Exposure Modes:', width=100, height=100) f2 = ttk.Labelframe(midpane, text='Auto White Balance:', width=100, height=100) midpane.add(f3) midpane.add(f4) midpane.add(f2) masterpane.add(midpane) ttk.Label(f3, text='Delay: ').grid(column=1, row=1, sticky=E) delay_variable = ttk.Entry(f3, width=4, textvariable=delayvar) delay_variable.grid(column=2, row=1, sticky=W) ttk.Label(f3, text='Brightness: ').grid(column=3, row=1, sticky=E) delay_variable = ttk.Entry(f3, width=4, textvariable=brightnessvar) delay_variable.grid(column=4, row=1, sticky=W) ttk.Label(f3, text='Contrast: ').grid(column=5, row=1, sticky=E) delay_variable = ttk.Entry(f3, width=4, textvariable=contrastvar) delay_variable.grid(column=6, row=1, sticky=W) # ttk.Label(f3, text='Framerate: ').grid(column=7, row=1, sticky=E) # delay_variable = ttk.Entry(f3, width=4, textvariable=frameratevar) # delay_variable.grid(column=8, row=1, sticky=W) ttk.Label(f3, text='Shutter Speed(μs): ').grid(column=1, row=2, sticky=E) delay_variable = ttk.Entry(f3, width=6, textvariable=shutterspeedvar) delay_variable.grid(column=2, row=2, sticky=W) ttk.Label(f3, text='ISO: (max=800)').grid(column=3, row=2, sticky=E) iso_variable = ttk.Entry(f3, width=4, textvariable=isovar) iso_variable.grid(column=4, row=2, sticky=W) ttk.Label(f3, text='Preview Timeout: ').grid(column=5, row=2, sticky=E) delay_variable = ttk.Entry(f3, width=4, textvariable=previewtimeout) delay_variable.grid(column=6, row=2, sticky=W) ttk.Label(f3, text='Resolution:').grid(column=7, row=2, sticky=E) xresolution_variable = ttk.Entry(f3, width=4, textvariable=resolutionvarx) xresolution_variable.grid(column=8, row=2, sticky=E) ttk.Label(f3, text='x').grid(column=9, row=2) yresolution_variable = ttk.Entry(f3, width=4, textvariable=resolutionvary) yresolution_variable.grid(column=10, row=2, sticky=W) ttk.Label(f3, text='Zoom: ').grid(column=1, row=3, sticky=E) delay_variable = ttk.Entry(f3, width=15, textvariable=zoomvar) delay_variable.grid(column=2, row=3, sticky=W) awbmode_auto = ttk.Radiobutton(f2, text='auto', variable=awbvar, value='auto') awbmode_auto.grid(column=1, row=1, sticky=W) awbmode_fluorescent = ttk.Radiobutton(f2, text='fluorescent', variable=awbvar, value='fluorescent') awbmode_fluorescent.grid(column=2, row=1, sticky=W) awbmode_incandescent = ttk.Radiobutton(f2, text='incandescent', variable=awbvar, value='incandescent') awbmode_incandescent.grid(column=3, row=1, sticky=W) awbmode_off = ttk.Radiobutton(f2, text='off', variable=awbvar, value='off') awbmode_off.grid(column=4, row=1, sticky=W) awbmode_default = ttk.Radiobutton(f2, text='default', variable=awbvar, value='') awbmode_default.grid(column=5, row=1, sticky=W) awbmode_sun = ttk.Radiobutton(f2, text='sun', variable=awbvar, value='sun') awbmode_sun.grid(column=6, row=1, sticky=W) awbmode_cloud = ttk.Radiobutton(f2, text='cloud', variable=awbvar, value='cloud') awbmode_cloud.grid(column=7, row=1, sticky=W) awbmode_shade = ttk.Radiobutton(f2, text='shade', variable=awbvar, value='shade') awbmode_shade.grid(column=1, row=2, sticky=W) awbmode_tungsten = ttk.Radiobutton(f2, text='tungsten', variable=awbvar, value='tungsten') awbmode_tungsten.grid(column=2, row=2, sticky=W) awbmode_flash = ttk.Radiobutton(f2, text='flash', variable=awbvar, value='flash') awbmode_flash.grid(column=3, row=2, sticky=W) awbmode_horizon = ttk.Radiobutton(f2, text='horizon', variable=awbvar, value='horizon') awbmode_horizon.grid(column=4, row=2, sticky=W) exposuremode_night = ttk.Radiobutton(f4, text='night', variable=exposuremode, value='night') exposuremode_night.grid(column=1, row=1, sticky=W) exposuremode_auto = ttk.Radiobutton(f4, text='auto', variable=exposuremode, value='auto') exposuremode_auto.grid(column=2, row=1, sticky=W) exposuremode_verylong = ttk.Radiobutton(f4, text='verylong', variable=exposuremode, value='verylong') exposuremode_verylong.grid(column=3, row=1, sticky=W) exposuremode_spotlight = ttk.Radiobutton(f4, text='spotlight', variable=exposuremode, value='spotlight') exposuremode_spotlight.grid(column=4, row=1, sticky=W) exposuremode_sports = ttk.Radiobutton(f4, text='sports', variable=exposuremode, value='sports') exposuremode_sports.grid(column=5, row=1, sticky=W) exposuremode_off = ttk.Radiobutton(f4, text='off', variable=exposuremode, value='off') exposuremode_off.grid(column=6, row=1, sticky=W) exposuremode_default = ttk.Radiobutton(f4, text='default', variable=exposuremode, value='') exposuremode_default.grid(column=7, row=1, sticky=W) exposuremode_backlight = ttk.Radiobutton(f4, text='backlight', variable=exposuremode, value='backlight') exposuremode_backlight.grid(column=1, row=2, sticky=W) exposuremode_fireworks = ttk.Radiobutton(f4, text='fireworks', variable=exposuremode, value='fireworks') exposuremode_fireworks.grid(column=2, row=2, sticky=W) exposuremode_antishake = ttk.Radiobutton(f4, text='antishake', variable=exposuremode, value='antishake') exposuremode_antishake.grid(column=3, row=2, sticky=W) exposuremode_fixedfps = ttk.Radiobutton(f4, text='fixedfps', variable=exposuremode, value='fixedfps') exposuremode_fixedfps.grid(column=4, row=2, sticky=W) exposuremode_beach = ttk.Radiobutton(f4, text='beach', variable=exposuremode, value='beach') exposuremode_beach.grid(column=5, row=2, sticky=W) exposuremode_snow = ttk.Radiobutton(f4, text='snow', variable=exposuremode, value='snow') exposuremode_snow.grid(column=6, row=2, sticky=W) exposuremode_nightpreview = ttk.Radiobutton(f4, text='nightpreview', variable=exposuremode, value='nightpreview') exposuremode_nightpreview.grid(column=7, row=2, sticky=W) bottompane = ttk.Panedwindow(masterpane, orient=HORIZONTAL) f5 = ttk.Labelframe(bottompane, text='Camera Options:', width=100, height=100) f6 = ttk.Labelframe(bottompane, text='Image Data:', width=100, height=100) bottompane.add(f5) bottompane.add(f6) masterpane.add(bottompane) ttk.Button(f5, text='Take Picture', command=picturetaken).grid(column=1, row=1, sticky=(W, E)) ttk.Button(f5, text="Set Normal Options", command=setnormaloptions).grid(column=1, row=2, sticky=(W, E)) ttk.Button(f5, text="Set Low Light Options", command=setdarkoptions).grid(column=1, row=3, sticky=(W, E)) ttk.Button(f5, text="Camera Preview", command=preview).grid(column=1, row=4, sticky=(W, E)) ttk.Button(f5, text="Show Plots", command=showimageplot).grid(column=2, row=2, sticky=(W, E)) ttk.Button(f5, text="Show Image", command=showimage).grid(column=2, row=1, sticky=(W, E)) ttk.Button(f5, text="Import Image", command=importimage).grid(column=2, row=3, sticky=(W, E)) ttk.Button(f5, text="Save Image", command=saveimage).grid(column=2, row=4, sticky=(W, E)) ttk.Button(f5, text="Show Red", command=showredimage).grid(column=3, row=1, sticky=(W, E)) ttk.Button(f5, text="Show Green", command=showgreenimage).grid(column=3, row=2, sticky=(W, E)) ttk.Button(f5, text="Show Blue", command=showblueimage).grid(column=3, row=3, sticky=(W, E)) ttk.Button(f5, text="Save All", command=saveallimages).grid(column=3, row=4, sticky=(W, E)) ttk.Label(f6, text="Intensity: ").grid(column=1, row=1, sticky=(W, E)) intensitylabel = ttk.Label(f6, text='Not Taken') intensitylabel.grid(column=1, row=2, sticky=(W, E)) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) # start_time = time.time() root.mainloop()
else: display_button(active_notebook, tab_no) else: display_button(active_notebook, tab_no) #----------------------------------------------------------- # Create GUI #----------------------------------------------------------- win = tk.Tk() # Create instance win.title("Python GUI") # Add title #------------------------------------------ win_frame_multi_row_tabs = ttk.Frame(win) win_frame_multi_row_tabs.grid(column=0, row=0, sticky='W') display_area = ttk.Labelframe(win, text=' Tab Display Area ') display_area.grid(column=0, row=1, sticky='WE') note1 = ttk.Notebook(win_frame_multi_row_tabs) note1.grid(column=0, row=0) note2 = ttk.Notebook(win_frame_multi_row_tabs) note2.grid(column=0, row=1) # create and add tabs to Notebooks for tab_no in range(5): tab1 = ttk.Frame(note1, width=0, height=0) # Create a tab for notebook 1 tab2 = ttk.Frame(note2, width=0, height=0) # Create a tab for notebook 2 note1.add(tab1, text=' Tab {} '.format(tab_no + 1)) # Add tab notebook 1 note2.add(tab2, text=' Tab {} '.format(tab_no + 1)) # Add tab notebook 2
def startRGBSensorGUI(): tf = 'PlotTextFile.txt' if os.path.isfile(tf): os.remove(tf) # filepath = os.sep.join((os.path.expanduser('~'), 'Desktop')) def setnormaloptions(): try: integrationvar.set('2.4') gainvar.set(1) except ValueError: pass def setdarkoptions(): try: integrationvar.set('700') gainvar.set(60) except ValueError: pass def capturedata(): try: global red_intensity, green_intensity, blue_intensity, clear_unfiltered, lux, color_temperature red_intensity, green_intensity, blue_intensity, clear_unfiltered, lux, color_temperature = RGBSensor.Capture( integrationtime=float(integrationvar.get()), gain=gainvar.get()) intensity_array = '\n'.join([ 'R:' + '{}'.format(red_intensity), 'G:' + '{}'.format(green_intensity), 'B:' + '{}'.format(blue_intensity), 'Clear:' + '{}'.format(clear_unfiltered), 'Luminosity:{} lux'.format(lux), 'Color Temperature:{} K'.format(color_temperature) ]) intensitylabel.config(text=intensity_array) except AttributeError: messagebox.showinfo( message='Too dark to determine color temperature.') # def directorychosen(): # try: # global filepath # filepath = filedialog.askdirectory() # except ValueError: # pass # def importimage(): # global rgb_array # rgb_array = RPiCamera.importImage() # # red_intensity, green_intensity, blue_intensity, intensity = RPiCamera.returnIntensity(rgb_array) # intensity_array = '\n'.join(['R:' + '{:.3f}'.format(red_intensity), # 'G:' + '{:.3f}'.format(green_intensity), # 'B:' + '{:.3f}'.format(blue_intensity), # 'I:' + '{:.3f}'.format(intensity)]) # intensitylabel.config(text=intensity_array) def savedata(): # foldername = 'ISO={}-Delay={}-Resolution={}x{}-Brightness={}-Contrast={}-ShutterSpeed={}' \ # '-Exposure={}-AutoWhiteBalance={}-' \ # 'Zoom={}'.format(isovar.get(), delayvar.get(), resolutionvarx.get(), resolutionvary.get(), # brightnessvar.get(), contrastvar.get(), # shutterspeedvar.get(), exposuremode.get(), awbvar.get(), zoomvar.get()) RGBSensor.saveData(red_intensity, green_intensity, blue_intensity, clear_unfiltered, lux, color_temperature) messagebox.showinfo(message='Finished Saving to Directory.') # def realtimeplot(): # MultiPlot.GeneratePlotDataFile(tf, RPiCamera.returnIntensity(rgb_array), start_time) root = Tk() root.title("RGB Sensor GUI") mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) gainvar = IntVar() integrationvar = StringVar() gainvar.set(1) integrationvar.set('2.4') masterpane = ttk.Panedwindow(mainframe, orient=VERTICAL) midpane = ttk.Panedwindow(masterpane, orient=VERTICAL) f4 = ttk.Labelframe(midpane, text='Gain:', width=100, height=100) f2 = ttk.Labelframe(midpane, text='Integration Time:', width=100, height=100) midpane.add(f2) midpane.add(f4) masterpane.add(midpane) integration2_4 = ttk.Radiobutton(f2, text='2.4ms', variable=integrationvar, value='2.4') integration2_4.grid(column=1, row=1, sticky=W) integration24 = ttk.Radiobutton(f2, text='24ms', variable=integrationvar, value='24') integration24.grid(column=2, row=1, sticky=W) integration50 = ttk.Radiobutton(f2, text='50ms', variable=integrationvar, value='50') integration50.grid(column=3, row=1, sticky=W) integration101 = ttk.Radiobutton(f2, text='101ms', variable=integrationvar, value='101') integration101.grid(column=4, row=1, sticky=W) integration154 = ttk.Radiobutton(f2, text='154ms', variable=integrationvar, value='154') integration154.grid(column=5, row=1, sticky=W) integration700 = ttk.Radiobutton(f2, text='700ms', variable=integrationvar, value='700') integration700.grid(column=6, row=1, sticky=W) gain1 = ttk.Radiobutton(f4, text='1X', variable=gainvar, value=1) gain1.grid(column=1, row=1, sticky=W) gain4 = ttk.Radiobutton(f4, text='4X', variable=gainvar, value=4) gain4.grid(column=2, row=1, sticky=W) gain16 = ttk.Radiobutton(f4, text='16X', variable=gainvar, value=16) gain16.grid(column=3, row=1, sticky=W) gain60 = ttk.Radiobutton(f4, text='60X', variable=gainvar, value=60) gain60.grid(column=4, row=1, sticky=W) bottompane = ttk.Panedwindow(masterpane, orient=HORIZONTAL) f5 = ttk.Labelframe(bottompane, text='Sensor Options:', width=100, height=100) f6 = ttk.Labelframe(bottompane, text='RGB Data:', width=100, height=100) bottompane.add(f5) bottompane.add(f6) masterpane.add(bottompane) ttk.Button(f5, text='Capture Data', command=capturedata).grid(column=1, row=1, sticky=(W, E)) ttk.Button(f5, text="Set Normal Options", command=setnormaloptions).grid(column=1, row=2, sticky=(W, E)) ttk.Button(f5, text="Set Low Light Options", command=setdarkoptions).grid(column=1, row=3, sticky=(W, E)) # ttk.Button(f5, text="Show Plots", command=showimageplot).grid(column=2, row=2, sticky=(W, E)) ttk.Button(f5, text="Save Data", command=savedata).grid(column=1, row=4, sticky=(W, E)) intensitylabel = ttk.Label(f6, text='Not Taken') intensitylabel.grid(column=1, row=1, sticky=(W, E)) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) # start_time = time.time() root.mainloop()
import tkinter as tk from tkinter import ttk, PhotoImage, Label map_size_str = input("What dimensions should the map have? (x,y)\n") map_size_arr_str = map_size_str.split(",") map_size = [int(map_size_arr_str[0]), int(map_size_arr_str[1])] win = tk.Tk() win.title("Map maker") # main widget main_wid = ttk.Labelframe(win, text="Map:") main_wid.grid(column=1, row=4 + map_size[0], padx=16, pady=16) img_wid = ttk.Labelframe(win, text="Img:") img_wid.grid(column=1, row=6 + map_size[0]) i = 0 tiles = [] # create text boxes for i_y in range(map_size[1]): for i_x in range(map_size[0]): # make input box tiles.append(ttk.Entry(main_wid, width=3)) tiles[i].grid(column=i_x, row=i_y) # place it on it's position i += 1 def give_str(): output_str = "{ {"
def controlMenu(self): padx = 10 pady = 5 textWidth = 20 control = tk.Frame(self) control.pack(side=tk.TOP, fill=tk.BOTH, expand=True) leftGrid = tk.Frame(control) leftGrid.grid(row=1, column=1, sticky=tk.W) step = ttk.Labelframe(leftGrid, text=self.steps[0]) step.grid(row=1, column=1, padx=padx, pady=pady, sticky=tk.W) self.stepText = tk.Text(step, width=textWidth, height=step.winfo_height()) self.stepText.pack(padx=padx, pady=pady) self.stepText.insert("1.0", "1") detector = ttk.Labelframe(leftGrid, text=self.detectors[0]) detector.grid(row=2, column=1, padx=padx, pady=pady, sticky=tk.W) self.detectorText = tk.Text(detector, width=textWidth, height=detector.winfo_height()) self.detectorText.pack(padx=padx, pady=pady) self.detectorText.insert("1.0", "200") span = ttk.Labelframe(leftGrid, text=self.spans[0]) span.grid(row=3, column=1, padx=padx, pady=pady, sticky=tk.W) self.spanText = tk.Text(span, width=textWidth, height=span.winfo_height()) self.spanText.pack(padx=padx, pady=pady) self.spanText.insert("1.0", "150") middleGrid = tk.Frame(control) middleGrid.grid(row=1, column=2) # imagesLabel = ttk.Labelframe(control, text="Images") # imagesLabel.grid(row=1, column=2, pady=pady, sticky=tk.W) # self.values = tk.StringVar() # self.images = ttk.Combobox(imagesLabel, state="disabled", textvariable=self.values) # self.images.pack(padx=padx, pady=pady) transformLabel = ttk.Labelframe(middleGrid, text="transform") transformLabel.grid(row=3, column=2, pady=pady, sticky=tk.W) self.filterVar = tk.BooleanVar() checkButton = MyCheckButton(middleGrid, text="Filter", variable=self.filterVar, onvalue=True, offvalue=False) checkButton.grid(row=2, column=2, padx=padx, pady=pady, sticky=tk.W) checkButton.select() buttonTransform = ttk.Button(transformLabel, text="Transform", command=lambda: self.transform()) buttonTransform.pack(padx=padx, pady=pady) # buttonTransform.grid(row=2, column=1, padx=padx, pady=pady, sticky=tk.W) rightGrid = tk.Frame(control) rightGrid.grid(row=1, column=3) pathFrame = ttk.Labelframe(rightGrid, text="File directory") pathFrame.grid(row=1, column=3, padx=padx, pady=pady, sticky=tk.W) buttonChoose = ttk.Button(pathFrame, text="Load file", command=lambda: self.chooseFile()) buttonChoose.grid(row=1, column=1, padx=padx, pady=pady) self.pathLabel = ttk.Label(pathFrame, text=self.path) self.pathLabel.grid(row=1, column=2, padx=padx, pady=pady, sticky=tk.W) self.dicom = ttk.Labelframe(rightGrid, text="DICOM Info") self.dicom.grid(row=2, column=3, padx=padx, pady=pady, sticky=tk.W) lastNameDicomFrame = ttk.Labelframe(self.dicom, text="Last name") lastNameDicomFrame.grid(row=1, column=1, padx=padx, pady=pady, sticky=tk.W) # self.nameDicom = tk.Label(nameDicomFrame, text="Name") self.lastNameDicom = tk.Text(lastNameDicomFrame, width=textWidth, height=lastNameDicomFrame.winfo_height()) self.lastNameDicom.pack() firstnameDicomFrame = ttk.Labelframe(self.dicom, text="First name") firstnameDicomFrame.grid(row=1, column=2, padx=padx, pady=pady, sticky=tk.W) # self.nameDicom = tk.Label(nameDicomFrame, text="Name") self.firstNameDicom = tk.Text( firstnameDicomFrame, width=textWidth, height=firstnameDicomFrame.winfo_height()) self.firstNameDicom.pack() genderDicomFrame = ttk.Labelframe(self.dicom, text="Gender") genderDicomFrame.grid(row=1, column=3, padx=padx, pady=pady, sticky=tk.W) self.gender = tk.StringVar() # self.nameDicom = tk.Label(nameDicomFrame, text="Name") self.genderDicom = ttk.Combobox(genderDicomFrame, justify=tk.CENTER, state="readonly", width=5, height=genderDicomFrame.winfo_height(), textvariable=self.gender) self.genderDicom.pack() self.genderDicom["values"] = ('M', 'F') self.genderDicom.current(0) birthDicomFrame = ttk.Labelframe(self.dicom, text="Birthday(YYYY-MM-DD)") birthDicomFrame.grid(row=2, column=1, padx=padx, pady=pady, sticky=tk.W) # self.nameDicom = tk.Label(nameDicomFrame, text="Name") self.birthDicom = tk.Text(birthDicomFrame, width=textWidth, height=birthDicomFrame.winfo_height()) self.birthDicom.pack() idDicomFrame = ttk.Labelframe(self.dicom, text="Id") idDicomFrame.grid(row=2, column=2, padx=padx, pady=pady, sticky=tk.W) # self.idDicom = ttk.Label(idDicomFrame, text="Id") self.idDicom = tk.Text(idDicomFrame, width=textWidth, height=idDicomFrame.winfo_height()) self.idDicom.pack() dateDicomFrame = ttk.Labelframe(self.dicom, text="Date(YYYY-MM-DD)") dateDicomFrame.grid(row=1, column=4, padx=padx, pady=pady, sticky=tk.W) self.dateDicom = tk.Label(dateDicomFrame, text="Date") # self.dateDicom = tk.Text(dateDicomFrame, width=textWidth, height=dateDicomFrame.winfo_height()) self.dateDicom.pack() timeDicomFrame = ttk.Labelframe(self.dicom, text="Time(HH:MM:SS)") timeDicomFrame.grid(row=2, column=3, padx=padx, pady=pady, sticky=tk.W) self.timeDicom = tk.Label(timeDicomFrame, text="Time") # self.timeDicom = tk.Text(timeDicomFrame, width=textWidth, height=timeDicomFrame.winfo_height()) self.timeDicom.pack() saveButton = ttk.Button(self.dicom, text="Save DICOM", command=lambda: self.saveFile()) saveButton.grid(row=2, column=4, padx=padx, pady=pady, sticky=tk.W) return control, leftGrid, middleGrid, rightGrid