Example #1
0
    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
Example #3
0
    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)
Example #5
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()
Example #6
0
# 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()
Example #8
0
    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')
Example #9
0
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)
Example #10
0
    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)
Example #11
0
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,
    )
Example #12
0
    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))
Example #13
0
# 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()
Example #14
0
    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()
Example #15
0
    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
Example #16
0
    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))
Example #17
0
    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,
Example #19
0
File: gui.py Project: exirmee/gui
#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()
Example #21
0
    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()
Example #22
0
    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)
Example #23
0
 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()
Example #24
0
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()
Example #25
0
 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()
Example #26
0
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()
Example #27
0
        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
Example #28
0
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()
Example #29
0
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 = "{ {"
Example #30
0
File: gui.py Project: M-Lewinski/CT
    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