Example #1
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.root = self.winfo_toplevel()
        self.root.option_add("*Font", "serif 10 bold")
        self.root.title(" ".join((APPNAME, VERSION, "| Main")))
        self.root.resizable(0,0)
        self.root.bind('<Key>', self.__keys) 

        # Menu
        menubar = Menu(self.root)
        self.windowsmenu = Menu(menubar, tearoff=0)
        self.windowsmenu.add_command(label="[ ] Report window", command=self.__toggle_report)
        self.windowsmenu.add_command(label="Plot current model", command=self.__plot)
        self.windowsmenu.add_separator()
        self.windowsmenu.add_command(label="Quit", command=self.destroy)
        menubar.add_cascade(label="Windows", menu=self.windowsmenu)
        settingsmenu = Menu(menubar, tearoff=0)
        settingsmenu.add_command(label="Spectrum range")
        settingsmenu.add_command(label="Color scheme")
        menubar.add_cascade(label="Settings", menu=settingsmenu)
        helpmenu = Menu(menubar, tearoff=0)
        helpmenu.add_command(label="Help", command=self.__help)
        helpmenu.add_separator()
        helpmenu.add_command(label="About", command=self.__about)
        menubar.add_cascade(label="Help", menu=helpmenu)
        self.root.config(menu=menubar)
        # disabled menu items
        settingsmenu.entryconfig(0, state='disabled')
        settingsmenu.entryconfig(1, state='disabled')
        helpmenu.entryconfig(0, state='disabled')

        # Scale
        ctrls = Labelframe(self, text='Control', relief='ridge')
        self.e = Scale(ctrls, from_=E_MIN, to=E_MAX, label='Links',
                bd=1, width=7, length=150, orient='horizontal')
        self.d = Scale(ctrls, from_=D_MIN, to=D_MAX, label='Pages',
                bd=1, width=7, length=150, orient='horizontal')
        self.e.set(E)
        self.d.set(D)
        self.e.config(command=self.__refresh)
        self.d.config(command=self.__refresh)
        self.e.pack(side='left')
        self.d.pack(side='right')
        self.r_win = False
        ctrls.pack(side='top', anchor='e', padx=7, pady=5)

        # initialize model
        self.generate_model()
        self.c = GraphViewer(self, D, self.edge_counts, self.pagerank)
        self.c.pack()

        # open windows
        self.__toggle_report()
Example #2
0
rightFrame = Frame(win)
rightFrame.pack(side='right')
rightFrame.config(width=600, height=470, background="green")

panedwindow.add(leftFrame)
panedwindow.add(rightFrame)

bottomFrame = Frame(win)
bottomFrame.pack(side='bottom')
bottomFrame.config(width=800, height=30, background="blue")


# leftFrame에 Entry 위젯 추가
label_frame = Labelframe(leftFrame, text='기본 정보 입력')
label_frame.pack()

lbl_name = Label(label_frame, text="성명:")
lbl_phone = Label(label_frame, text="전화번호:")
lbl_email = Label(label_frame, text="이메일:")

entry_name = Entry(label_frame)
entry_phone = Entry(label_frame)
entry_email = Entry(label_frame)

lbl_name.grid(row=0, column=0)
entry_name.grid(row=0, column=1, padx=5, pady=5)
lbl_phone.grid(row=1, column=0)
entry_phone.grid(row=1, column=1, padx=5, pady=5)
lbl_email.grid(row=2, column=0)
entry_email.grid(row=2, column=1, padx=5, pady=5)
Example #3
0
class MainView(Frame):
    def __init__(self, root, model: Model):
        super().__init__(root)
        root.columnconfigure(0, weight=1)
        root.rowconfigure(0, weight=1)
        self.model = model
        self.__init_components()
        self.grid(sticky='nsew')
        self.__bind_action_events()

    def __init_components(self):
        # Instanciar widgets
        self.panel_form = Labelframe(self, text='Tarea')
        self.panel_tasks = Labelframe(self, text='Tareas por hacer')
        self.panel_complete_tasks = Labelframe(self, text='Tareas completas')

        self.label_name = Label(self.panel_form, text='Nombre:')
        self.label_description = Label(self.panel_form, text='Descripción:')
        self.entry_name = Entry(self.panel_form)
        self.entry_description = Entry(self.panel_form)

        self.btn_modify_task = Button(self.panel_form,
                                      text='Editar tarea',
                                      state=DISABLED,
                                      command=self.__modify_task)
        self.btn_new_task = Button(self.panel_form,
                                   text='Nueva tarea',
                                   command=self.__new_task)
        self.btn_delete_task = Button(self.panel_form,
                                      text='Eliminar tarea',
                                      state=DISABLED,
                                      command=self.__delete_task)
        self.btn_clear_form = Button(self.panel_form,
                                     text='Limpiar campos',
                                     command=self.__clear_form)
        self.btn_complete_task = Button(self.panel_form,
                                        text='Completar tarea',
                                        state=DISABLED,
                                        command=self.__complete_task)

        self.scroll_tasks = Scrollbar(self.panel_tasks, orient=VERTICAL)
        self.scroll_complete_tasks = Scrollbar(self.panel_complete_tasks,
                                               orient=VERTICAL)
        self.list_tasks = Listbox(self.panel_tasks,
                                  selectmode=SINGLE,
                                  height=10,
                                  width=25,
                                  yscrollcommand=self.scroll_tasks.set)
        self.list_complete_tasks = Listbox(
            self.panel_complete_tasks,
            selectmode=SINGLE,
            height=10,
            width=25,
            yscrollcommand=self.scroll_complete_tasks.set)

        # Posicionar los widgets
        # Panel de formulario de tareas
        self.panel_form.pack(fill='both',
                             expand='yes',
                             padx=10,
                             pady=5,
                             ipadx=5,
                             ipady=5)
        self.panel_form.columnconfigure(0, weight=1)
        self.panel_form.rowconfigure(0, weight=1)

        self.label_name.grid(row=0, column=0, padx=5, sticky='w')
        self.entry_name.grid(row=0, column=1, padx=5, sticky='w')
        self.label_description.grid(row=1,
                                    column=0,
                                    padx=5,
                                    pady=5,
                                    sticky='w')
        self.entry_description.grid(row=1,
                                    column=1,
                                    padx=5,
                                    pady=10,
                                    sticky='w')

        # Botones
        self.btn_modify_task.grid(row=2, column=0, ipady=4, sticky='we')
        self.btn_new_task.grid(row=2, column=1, ipady=4, sticky='we')
        self.btn_delete_task.grid(row=3, column=0, ipady=4, sticky='we')
        self.btn_clear_form.grid(row=3, column=1, ipady=4, sticky='we')
        self.btn_complete_task.grid(row=4,
                                    column=0,
                                    columnspan=2,
                                    ipady=4,
                                    sticky='we')

        config_list = {
            'fill': 'both',
            'expand': 'yes',
            'padx': 10,
            'pady': 5,
            'ipadx': 5,
            'ipady': 5
        }

        # Panel de lista de tareas pendientes
        self.panel_tasks.pack(config_list)
        self.panel_tasks.columnconfigure(0, weight=20)
        self.panel_tasks.columnconfigure(1, weight=1)
        self.list_tasks.grid(row=0, column=0, sticky='we')
        self.scroll_tasks.configure(command=self.list_tasks.yview)
        self.scroll_tasks.grid(row=0, column=1, sticky='ns')

        # Panel de lista de tareas completas
        self.panel_complete_tasks.pack(config_list)
        self.panel_complete_tasks.columnconfigure(0, weight=20)
        self.panel_complete_tasks.columnconfigure(1, weight=1)
        self.list_complete_tasks.grid(row=0, column=0, sticky='we')
        self.scroll_complete_tasks.configure(
            command=self.list_complete_tasks.yview)
        self.scroll_complete_tasks.grid(row=0, column=1, sticky='ns')

    def __bind_action_events(self):
        # self.btn_new_task.bind('<Button>', self.__new_task)
        # self.btn_modify_task.bind('<Button>', self.__modify_task)
        # self.btn_delete_task.bind('<Button>', self.__delete_task)
        # self.btn_complete_task.bind('<Button>', self.__complete_task)

        self.list_tasks.bind('<<ListboxSelect>>', self.__select_task)

    def __new_task(self):
        log_info('Botón {} pulsado'.format(
            self.btn_new_task.config('text')[-1]))

        name_value = self.entry_name.get()
        description_value = self.entry_description.get()

        if name_value:
            self.model.new_task(name_value, description_value)
            self.update_tables()
        else:
            messagebox.showwarning('AVISO', 'Complete el campo de nombre')

    def __modify_task(self):
        index = self.__selected_task()

        name_value = self.entry_name.get()
        description_value = self.entry_description.get()

        if index != -1:
            task = self.model.get_task(self.model.tasks[index].get_id())
            complete = self.model.modify_task(task.get_id(), name_value,
                                              description_value)

            if complete:
                messagebox.showinfo('Aviso',
                                    'Tarea: {} editada'.format(task.name))

        self.update_tables()

    def __delete_task(self):
        index = self.__selected_task()

        if index != -1:
            task = self.model.get_task(self.model.tasks[index].get_id())
            self.model.delete_task(task.get_id())
            self.update_tables()

    def __complete_task(self):
        index = self.__selected_task()

        if index != -1:
            task = self.model.get_task(self.model.tasks[index].get_id())
            task.close_todo()
            complete = self.model.modify_task(task.get_id(), task.name,
                                              task.description)

            if complete:
                messagebox.showinfo('Aviso',
                                    'Tarea: {} completa'.format(task.name))

        self.update_tables()

    def __clear_form(self):
        self.clear_form()
        self.__change_state_btn(DISABLED)

    def __select_task(self, event):
        self.clear_form()
        index = self.__selected_task()

        if index != -1:
            task = self.model.get_task(self.model.tasks[index].get_id())
            self.set_form(task)
            self.__change_state_btn(NORMAL)

    def __change_state_btn(self, state: str):
        self.btn_new_task.config(
            state=NORMAL if state == DISABLED else DISABLED)
        self.btn_delete_task.config(state=state)
        self.btn_modify_task.config(state=state)
        self.btn_complete_task.config(state=state)

    def __selected_task(self):
        try:
            return self.list_tasks.curselection()[0]
        except IndexError:
            self.__change_state_btn(DISABLED)
            self.list_complete_tasks.activate(-1)
            return -1

    def update_tables(self):
        log_info('Actualizando tablas')
        self.list_tasks.delete(0, END)
        self.list_complete_tasks.delete(0, END)

        for index in range(len(self.model.tasks)):
            self.list_tasks.insert(index, self.model.tasks[index].name)

        for index in range(len(self.model.complete_tasks)):
            self.list_complete_tasks.insert(
                index, self.model.complete_tasks[index].name)

    def clear_form(self):
        self.entry_name.delete(0, END)
        self.entry_description.delete(0, END)

    def set_form(self, task: Task):
        if task is not None:
            self.entry_name.insert(0, task.name)
            self.entry_description.insert(0, task.description)
        else:
            log_error('No se encontró la tarea seleccionada')
Example #4
0
    def start(self):
        """Called when initialised to create test widgets."""

        # Initialise timer variables to None. (no need to clear canvas yet!)
        self.vtimer = self.htimer = self.atimer = None

        Label(self,
              text="WARNING: The delta will contain x and y components, "
              "even if that function is only called on changes to one axis!\n"
              "WARNING 2: Smoothing not included").pack()

        # Horizontal movement

        horiz_frame = Labelframe(self, text="Horizontal")
        horiz_frame.pack(side="left", padx=10, pady=10)

        # Canvas for previewing delta movement.
        self.hcanvas = Canvas(horiz_frame, width=200, height=200)
        self.hcanvas.create_oval(110,
                                 110,
                                 90,
                                 90,
                                 fill=self.hcol,
                                 outline=self.hcol)
        self.hcanvas.pack()

        # Label for dragging from.
        l = Label(horiz_frame, text="DRAG ME", relief="ridge")
        l.pack(ipadx=10, ipady=10, padx=20, pady=20)

        # Create button to reset canvas.
        Button(horiz_frame,
               text="Reset",
               command=lambda: self.hcanvas.delete("delta")).pack(padx=3,
                                                                  pady=3)

        # Motion input (the actual thing being tested!)
        m = MotionInput(l)
        m.bind("<Motion-X>", self.on_horiz_mov)

        # Vertical movement

        vert_frame = Labelframe(self, text="Vertical")
        vert_frame.pack(side="left", padx=10, pady=10)

        # Canvas for previewing delta movement.
        self.vcanvas = Canvas(vert_frame, width=200, height=200)
        self.vcanvas.create_oval(110,
                                 110,
                                 90,
                                 90,
                                 fill=self.vcol,
                                 outline=self.vcol)
        self.vcanvas.pack()

        # Label for dragging from.
        l = Label(vert_frame, text="DRAG ME", relief="ridge")
        l.pack(ipadx=10, ipady=10, padx=20, pady=20)

        # Create button to reset canvas.
        Button(vert_frame,
               text="Reset",
               command=lambda: self.vcanvas.delete("delta")).pack(padx=3,
                                                                  pady=3)

        # Motion input (the actual thing being tested!)
        m = MotionInput(l)
        m.bind("<Motion-Y>", self.on_vert_mov)

        # Any movement

        any_frame = Labelframe(self, text="Any Direction")
        any_frame.pack(side="left", padx=10, pady=10)

        # Canvas for previewing delta movement.
        self.acanvas = Canvas(any_frame, width=200, height=200)
        self.acanvas.create_oval(110,
                                 110,
                                 90,
                                 90,
                                 fill=self.acol,
                                 outline=self.acol)
        self.acanvas.pack()

        # Label for dragging from.
        l = Label(any_frame, text="DRAG ME", relief="ridge")
        l.pack(ipadx=10, ipady=10, padx=20, pady=20)

        # Create button to reset canvas.
        Button(any_frame,
               text="Reset",
               command=lambda: self.acanvas.delete("delta")).pack(padx=3,
                                                                  pady=3)

        # Motion input (the actual thing being tested!)
        m = MotionInput(l)
        m.bind("<Motion-XY>", self.on_any_mov)
Example #5
0
from tkinter import Tk, StringVar
from tkinter.ttk import Entry, Style, Label, Labelframe

root = Tk()
style = Style()
style.theme_use('default')

style.configure('brown.TLabelframe', background='#C9B99B')
style.configure('brown.TLabelframe.Label', background='#EDEF77')
style.configure('brown.TLabel', background='#EDEF77')
style.configure('lowr.TLabel', background='lightblue')
style.configure('upr.TLabel', background='red')

LFTEXT = 'Beer Strength % v/v'
lf0 = Labelframe(root, text=LFTEXT, style='brown.TLabelframe')
lf0.pack(padx=10, pady=10)
L_LIMIT = 0.0
U_LIMIT = 10.0

ulab = Label(lf0, text=str(U_LIMIT) + "  upper limit", style='brown.TLabel')
ulab.grid(row=0, column=1, padx=10)
llab = Label(lf0, text=str(L_LIMIT) + "  lower limit", style='brown.TLabel')
llab.grid(row=2, column=1, padx=10)


def end_input(evt):
    """limit on float

    Parameters
    ----------
    evt : str
    def open_config_window(self):
        config_window = Toplevel(self)
        config_window.iconbitmap(r'data\app.ico')
        config_window.minsize(500, 350)

        config_frame = Labelframe(config_window)
        config_frame.config(text="App Configuration",
                            relief='groove',
                            borderwidth=5)
        config_frame.pack(expand=1, fill='both', padx=5, pady=5)

        offset_title = Label(config_frame)
        offset_title.config(text='Numbering offset (Default 0)')
        offset_title.pack(anchor='nw', padx=5, pady=5)

        offset_entry = Entry(config_frame)
        offset_entry.config(
            width=10,
            exportselection=0,
            validate='key',
            validatecommand=(offset_entry.register(validate_config_entry),
                             '%P'))
        offset_entry.pack(anchor='nw', padx=5, pady=5)

        battle_value_frame = Labelframe(config_frame)
        battle_value_frame.config(text='Battle weighting',
                                  relief='groove',
                                  borderwidth=5)
        battle_value_frame.pack(anchor='nw',
                                fill='both',
                                expand=1,
                                padx=5,
                                pady=5)

        descriptor_frame = Frame(battle_value_frame)
        descriptor_frame.pack(side='left', fill='both', expand=1)

        entry_frame = Frame(battle_value_frame)
        entry_frame.pack(side='left', fill='both', expand=1)

        skirmish_title = Label(descriptor_frame)
        skirmish_title.config(text='Skirmish weighting (Default = 1):')
        skirmish_title.pack(anchor='nw', padx=5, pady=7)

        skirmish_entry = Entry(entry_frame)
        skirmish_entry.config(
            width=10,
            exportselection=0,
            validate='key',
            validatecommand=(skirmish_entry.register(validate_config_entry),
                             '%P'))
        skirmish_entry.pack(anchor='nw', padx=5, pady=5)

        advance_title = Label(descriptor_frame)
        advance_title.config(text='Advance weighting (Default = 1):')
        advance_title.pack(anchor='nw', padx=5, pady=10)

        advance_entry = Entry(entry_frame)
        advance_entry.config(
            width=10,
            exportselection=0,
            validate='key',
            validatecommand=(advance_entry.register(validate_config_entry),
                             '%P'))
        advance_entry.pack(anchor='nw', padx=5, pady=5)

        clan_war_title = Label(descriptor_frame)
        clan_war_title.config(text='Clan War weighting (Default = 3):')
        clan_war_title.pack(anchor='nw', padx=5, pady=6)

        clan_war_entry = Entry(entry_frame)
        clan_war_entry.config(
            width=10,
            exportselection=0,
            validate='key',
            validatecommand=(clan_war_entry.register(validate_config_entry),
                             '%P'))
        clan_war_entry.pack(anchor='nw', padx=5, pady=5)

        buttons_frame = Frame(config_frame)
        buttons_frame.pack(anchor='sw', fill='both', expand=0)

        apply_button = Button(buttons_frame)
        apply_button.config(text='Apply',
                            command=partial(self.config_apply, offset_entry,
                                            skirmish_entry, advance_entry,
                                            clan_war_entry))
        apply_button.pack(side='right', padx=5, pady=5)

        cancel_button = Button(buttons_frame)
        cancel_button.config(text='Cancel',
                             command=lambda: config_window.destroy())
        cancel_button.pack(side='right', padx=5, pady=5)

        ok_button = Button(buttons_frame)
        ok_button.config(text='OK',
                         style='OK.TButton',
                         command=partial(self.config_ok, offset_entry,
                                         skirmish_entry, advance_entry,
                                         clan_war_entry, config_window))
        ok_button.pack(side='right', padx=5, pady=5)

        offset_entry.insert('end', self.offset)
        skirmish_entry.insert('end', self.skirmish_value)
        advance_entry.insert('end', self.advance_value)
        clan_war_entry.insert('end', self.clan_war_value)
Example #7
0
class FindingWindow():
    def __init__(self, master, finding=None):
        self.master = master
        self.finding = finding
        self.master.geometry("400x300+300+300")
        self.master.title("Finding-Selector")
        self.proof_selectors = dict()
        self.proof_count = 0

        self.init_ui()

        if self.finding:
            self.fill_finding()

        self.proof_selectors[self.proof_count] = ProofSelector(
            self.frame_proofs)

        super().__init__()

    def init_ui(self):
        self.frame = Frame(self.master)
        self.frame.pack(fill=X, padx=20, pady=20)
        self.frame_proofs = Labelframe(self.master, text='Proofs')
        self.frame_proofs.pack(side=TOP, fill=BOTH, expand=True, padx=20)
        self.frame_proofs_footer = Frame(self.frame_proofs)
        self.frame_proofs_footer.pack(side=BOTTOM, anchor=E)
        self.frame_footer = Frame(self.master)
        self.frame_footer.pack(side=BOTTOM)

        self.entry_name_text = StringVar()
        self.entry_description_text = StringVar()

        row = 1
        first_column_width = 15
        second_column_width = 40

        lbl_name = Label(self.frame, text="Name", width=first_column_width)
        lbl_name.grid(row=row, column=0, padx=10)

        self.entry_name = Entry(self.frame,
                                text=self.entry_name_text,
                                width=second_column_width)
        self.entry_name.grid(row=row, column=1)

        row += 1
        lbl_description = Label(self.frame,
                                text="Description",
                                width=first_column_width)
        lbl_description.grid(row=row, column=0, padx=10)

        self.entry_description = Entry(self.frame,
                                       text=self.entry_description_text,
                                       width=second_column_width)
        self.entry_description.grid(row=row, column=1)

        bttn_add_more_proof = Button(self.frame_proofs_footer,
                                     text="AddProof",
                                     command=self.add_more_proof)
        bttn_add_more_proof.pack(padx=5, pady=5)

        if self.finding:
            bttn_create_finding_text = "Update"
        else:
            bttn_create_finding_text = "Create"

        bttn_create_finding = Button(self.frame_footer,
                                     text=bttn_create_finding_text,
                                     command=self.commit_incidence)
        bttn_create_finding.pack(side=BOTTOM, padx=5, pady=5)

    def fill_finding(self):
        print(self.finding)
        self.entry_name_text.set(self.finding.name)
        self.entry_description_text.set(self.finding.description)
        for proof in self.finding.proofs:
            print(proof)
            self.add_more_proof(proof)

    def add_more_proof(self, proof=None):
        self.proof_count += 1
        self.proof_selectors[self.proof_count] = ProofSelector(
            self.frame_proofs, proof)

    def commit_incidence(self):
        active_proofs = list()
        for proof_key in self.proof_selectors.keys():
            if self.proof_selectors[proof_key].active and self.proof_selectors[
                    proof_key].proof:
                active_proofs.append(self.proof_selectors[proof_key].proof)
        print("this is the active proofs")
        print(active_proofs)
        if not self.finding:
            new_finding = Finding(name=self.entry_name.get(),
                                  description=self.entry_description.get(),
                                  proofs=active_proofs)

            project.findings.append(new_finding)
        else:
            self.finding.name = self.entry_name.get()
            self.finding.description = self.entry_description.get()
            self.finding.proofs.extend(active_proofs)
            print("finding already existing, updated?")

        db.commit_changes()

        global app
        app.update_findings()
        self.master.destroy()
Example #8
0
class TestprogramPane(Labelframe):
    '''
    classdocs
    '''
    def __init__(self, master, tp=None, name='No TP Loaded'):
        '''
        Constructor
        '''
        Labelframe.__init__(self, master)
        self.name = name
        self.tp = tp
        self.tree = Treeview(self)
        self.tree.pack(fill=BOTH, expand=True)
        self.config(width=200,
                    height=200,
                    relief=RIDGE,
                    text='Test Program',
                    padding=10)
        self.tree.bind('<<TreeviewSelect>>', self.show_params)
        self.param_view = Labelframe(self)
        self.pins_view = Labelframe(self)
        self.params = {}
        self.pins = {}
        self.load()

    def load(self):
        self.tree.delete(*self.tree.get_children())
        if (self.tp == None):
            self.tree.insert("", 'end', 'Default', text=self.name)
        else:
            self.populate(self.tp.testtree)

    def show_params(self, event):
        self.param_view.destroy()
        if (self.params.get(self.tree.selection()[0], None) != None):
            self.param_view = Labelframe(self)
            self.load_params(self.param_view, self.tree.selection()[0])
            self.param_view.config(text='Test Parameters')
            self.param_view.pack(fill=BOTH, expand=True)

    def populate(self, tp):
        for element in tp.iter():
            if (element.tag == 'TestRef'):
                self.tree.insert("",
                                 'end',
                                 element.get("name"),
                                 text=element.get("name"),
                                 open=True)
            else:
                self.tree.insert(element.getparent().get("name"),
                                 'end',
                                 element.get("name"),
                                 text=element.get("name"),
                                 open=True)
                if (element.tag == 'Test'):
                    self.params[element.get("name")] = {
                        'delay': element.get('delay'),
                        'force': element.get('force'),
                        'lolim': element.get('lolim'),
                        'hilim': element.get('hilim'),
                        'pinref': element.get('pinref'),
                        'testtype': element.get('testtype')
                    }

    def fetch_pins(self, tp, pinref):
        for element in tp.iter():
            if (element.get("name") == pinref):
                self.pins[element.get("name")] = {
                    'pintype': element.get("pintype"),
                    'pins': []
                }
            else:
                if (element.tag == 'Pin'
                        and element.getparent().get("name") == pinref):
                    self.pins[pinref].get('pins').append(element.get("name"))
#

    def load_params(self, master, test):
        master.config(text=test)
        self.param_tree = Treeview(master)
        self.param_tree.pack(fill=BOTH, expand=True)
        self.param_tree.heading('#0', text='Parameter')
        self.param_tree.config(columns=('value'))
        self.param_tree.column('value', width=100)
        self.param_tree.heading('value', text='Value')

        self.param_tree.insert('',
                               'end',
                               'delay',
                               text='DELAY',
                               values=self.params.get(test).get('delay'))
        self.param_tree.insert('',
                               'end',
                               'force',
                               text='FORCE',
                               values=self.params.get(test).get('force'))
        self.param_tree.insert('',
                               'end',
                               'lolim',
                               text='LOLIM',
                               values=self.params.get(test).get('lolim'))
        self.param_tree.insert('',
                               'end',
                               'hilim',
                               text='HILIM',
                               values=self.params.get(test).get('hilim'))
        self.param_tree.insert('',
                               'end',
                               'pinref',
                               text='PINREF',
                               values=self.params.get(test).get('pinref'))
        self.param_tree.insert('',
                               'end',
                               'testtype',
                               text='TESTTYPE',
                               values=self.params.get(test).get('testtype'))
        if self.pins_view: self.pins_view.destroy()
        self.pins_view = Labelframe(self)
        self.param_tree.bind('<<TreeviewSelect>>', self.show_pins)

    def show_pins(self, event):
        self.pins_view.destroy()
        self.pins_view = Labelframe(self)
        pinref = self.param_tree.item(self.param_tree.selection()[0],
                                      "value")[0]
        self.fetch_pins(self.tp.pintree, pinref)
        if (self.pins.get(pinref, None) != None):
            self.pins_view = Labelframe(self)
            self.load_pins(self.pins_view, pinref)
            self.pins_view.config(text='Pin Parameters')
            self.pins_view.pack(fill=BOTH, expand=True)

    def load_pins(self, master, pinref):
        pins_tree = Treeview(master)
        pins_tree.pack(fill=BOTH, expand=True)
        pins_tree.heading('#0',
                          text=(next(iter(self.pins)), ' PinType: ',
                                self.pins.get(pinref).get('pintype')))
        for p in self.pins.get(pinref).get('pins'):
            pins_tree.insert('', 'end', p, text=p)
Example #9
0
        config.set('exposureTime', parseInt(self.vExposureTime.get()))
        config.set('startingExposureTime', parseInt(self.vStartingExposureTime.get()))
        config.set('startingLayers', parseInt(self.vStartingLayers.get()))
        config.set('postPause', parseInt(self.vPostPause.get()))
        config.set('retractDistance', parseFloat(self.vRetractDistance.get()))
        config.set('retractSpeed', parseInt(self.vRetractSpeed.get()))
        config.set('returnSpeed', parseInt(self.vReturnSpeed.get()))
        config.set('prePause', parseInt(self.vPrePause.get()))

handler.bind('next-layer', printNextLayer)
handler.bind('start', printStarted)



fileFrame = Labelframe(root, text="File")
fileFrame.pack(expand=True, fill=X, anchor=N, side=TOP, padx = 10, pady = 10)
filenameLabel = Label(fileFrame, text="No file selected")
filenameLabel.pack(side=LEFT)
selectFileButton = Button(fileFrame, text = 'Select File', command = load_file)
selectFileButton.pack(side=RIGHT, padx=5)


bodyFrame = Frame(root, width = 600, height=400)
bodyFrame.pack(expand=True, fill=X, padx=10, anchor=W)

view3DFrame = Frame(width=300, height=300)
viewLayerFrame = LayerPreview(root, width=300, height=300)


viewFrame = Notebook(bodyFrame)
#viewFrame.add(view3DFrame, text="3D View")
Example #10
0
    def __init__(self, *args, **kwargs):
        Tk.__init__(self, *args, **kwargs)

        self.constraints = []
        self.gf = None
        self.solver = None
        self.table = None

        # Left of the GUI
        self.frameLeft = Frame(self, borderwidth=0, relief=GROOVE)
        self.frameLeft.pack(side="left")

        frameTop = Frame(self.frameLeft, borderwidth=0, relief=GROOVE)
        frameTop.pack(side="top")

        frameModification = Labelframe(frameTop, borderwidth=0, relief=GROOVE,text="Modification de la Contrainte")
        Label(frameModification, text='Nom de la contrainte').grid(row=1, column=1, columnspan=2, padx=10, pady=5)
        Label(frameModification, text='Affichage constrainte').grid(row=2, column=1, columnspan=2, padx=10, pady=5)
        m = Button(frameModification, text='Modifier')
        m.grid(row=3, column=1, columnspan=2, padx=10, pady=5)
        m.bind('<Button-1>', self.buttonModifier)
        Button(frameModification, text='Supprimer').grid(row=7, column=1, columnspan=2, padx=10, pady=5)
        frameModification.pack(side="left", padx=5, pady=5)

        # Bottom of the GUI
        self.frameBottom = Frame(self.frameLeft, borderwidth=0, relief=GROOVE)
        self.frameBottom.pack(side="top")

        frameButtons = Frame(self.frameBottom, borderwidth=0, relief=GROOVE)
        solve = Button(frameButtons, text='Lancer la résolution')
        solve.pack(side="bottom", padx=5, pady=5)
        solve.bind('<Button-1>', self.solve)

        f = Button(frameButtons, text='Fonction objectif')
        f.bind('<Button-1>', self.buttonGF)
        f.pack(side="bottom", padx=5, pady=5)

        b = Button(frameButtons, text='Ajouter une Contrainte')
        b.pack(side="bottom", padx=5, pady=5)

        frameButtons.pack(side="left", padx=0, pady=0)

        frameConstraints = Labelframe(self.frameBottom, borderwidth=0, relief=GROOVE, text="Constraintes")
        self.listConstraints = Listbox(frameConstraints)
        self.listConstraints.pack()
        frameConstraints.pack(side="left", padx=5, pady=5)

        frameResults = Labelframe(self.frameLeft, borderwidth=0, relief=GROOVE, text="Résultat")
        labelResults = Label(frameResults, text="Résultats", bg="white")
        labelResults.pack()
        frameResults.pack(side="top", padx=5, pady=5)

        frameTable = LabelFrame(self.frameLeft, borderwidth=0, relief=GROOVE, text="Tableau")
        for ligne in range(5):
            for colonne in range(5):
                Label(frameTable, text='L%s-C%s' % (ligne, colonne), relief=GROOVE, borderwidth=5).grid(row=ligne,
                                                                                                        column=colonne)

        frameTable.pack(side="top", padx=5, pady=5)

        # Tkinter loop
        self.mainloop()