Beispiel #1
0
 def listar_reuniones_periodicas_callback(self, ventana_principal, frame):
     lista_reuniones = reunion_controller.listar_reuniones_periodicas()
     frame.destroy()
     frame = Frame(ventana_principal)
     frame.grid(row=1, column=2, rowspan=200, columnspan=200)
     frame.config(width=900)
     lista = Text(frame)
     count = 0
     for i in lista_reuniones:
         count += 1
         lista.insert(END, "* Detalle: " + i.detalle + "\n")
         lista.insert(END,
                      "\t" + "Sala en que se realiza: " + i.sala + "\n")
         lista.insert(
             END, "\t" + "Fecha registro: " + str(i.fecha_registro) + "\n")
         lista.insert(
             END,
             "\t" + "Agendada para: " + str(i.fecha_realizacion) + "\n")
         lista.insert(END,
                      "\t" + "Hora inicio: " + str(i.hora_inicio) + "\n")
         lista.insert(
             END,
             "\t" + "Hora finalizacion: " + str(i.hora_finalizacion) + "\n")
         lista.insert(
             END, "\t" + "Fecha de finalizacion: " +
             str(i.fecha_finalizacion) + "\n")
         lista.insert(END,
                      "\t" + "Frecuencia: " + str(i.frecuencia) + "\n\n")
     lista.config(width=900, state=DISABLED)
     lista.grid(row=1, column=2, rowspan=count)
Beispiel #2
0
class Test(Tk):
    def __init__(self):
        Tk.__init__(self, None)
        self.frame = Frame(None)
        self.frame.columnconfigure(0, weight=1)
        self.frame.rowconfigure(0, weight=1)

        self.frame.grid(row=0, column=0, sticky=W + E + N + S)

        fig = Figure()

        xval = arange(500) / 10.
        yval = sin(xval)

        ax1 = fig.add_subplot(111)
        ax1.plot(xval, yval)

        self.hbar = Scrollbar(self.frame, orient=HORIZONTAL)
        self.vbar = Scrollbar(self.frame, orient=VERTICAL)

        self.canvas = FigureCanvasTkAgg(fig, master=self.frame)
        self.canvas.get_tk_widget().config(bg='#FFFFFF',
                                           scrollregion=(0, 0, 500, 500))
        self.canvas.get_tk_widget().config(width=800, height=500)
        self.canvas.get_tk_widget().config(xscrollcommand=self.hbar.set,
                                           yscrollcommand=self.vbar.set)
        self.canvas.get_tk_widget().grid(row=0, column=0, sticky=W + E + N + S)

        self.hbar.grid(row=1, column=0, sticky=W + E)
        self.hbar.config(command=self.canvas.get_tk_widget().xview)
        self.vbar.grid(row=0, column=1, sticky=N + S)
        self.vbar.config(command=self.canvas.get_tk_widget().yview)

        self.frame.config(width=100, height=100)  # this has no effect
Beispiel #3
0
    def __init__(self, command=None):
        self.topic_list = None
        outsideFrame = Frame()
        outsideFrame.config(padx=10, pady=10)
        outsideFrame.grid(row=1, column=0, sticky="wn")

        self.frame = LabelFrame(outsideFrame, text="Topics")
        self.frame.config(font=("Arial", 14), padx=10, pady=10)
        self.frame.grid(row=0, column=0)
        self._command = command

        self.topic_filter_input = Entry(self.frame, width=33)
        self.topic_filter_input.grid(row=0, column=0, pady=10)
        self.topic_filter_input.bind("<KeyRelease>", self.filter_topic)

        treeFrame = Frame(self.frame)
        treeFrame.grid(row=1, column=0)
        self.tree = Treeview(treeFrame, style="Custom.Treeview")
        self.tree.heading('#0', text='Topic')
        self.tree.pack()
        self.tree.bind("<ButtonRelease-1>", self.OnClick)
        self.tree.tag_configure('odd', background='#f9f9f9')
        self.tree.tag_configure('even', background='#DFDFDF')

        scroll_bar = Scrollbar(self.frame,
                               orient="vertical",
                               command=self.tree.yview)
        scroll_bar.grid(row=1, column=1, sticky='nsew')
        self.tree.configure(yscrollcommand=scroll_bar.set)
Beispiel #4
0
 def __init__(self, parent, controller):
     Frame.__init__(self, parent)
     Frame.config(self, bg=bg)
     label = Label(self,
                   text='Students Performance Evaluation',
                   font=SUPER_LARGE_FONT,
                   bg=bg,
                   fg='white')
     label.grid(columnspan=2, pady=10)
     self.img = ImageTk.PhotoImage(Image.open('graph.png'))
     panel = Label(self, image=self.img, bg=bg, relief=RIDGE)
     panel.grid(rowspan=2, padx=25, pady=25)
     agreement = 'By Clicking on next you hereby \n' \
                 'Agree to use our policy\nWe assure you that we won\'t sell out\nyour data. ' \
                 'It will only be used to improve this\nsoftware. \n\nEnjoy using this Software!'
     agmtText = Label(self,
                      text=agreement,
                      bg=bg,
                      font=LARGE_FONT,
                      fg='white',
                      relief=RIDGE)
     agmtText.grid(row=1, column=1, padx=25, ipadx=20, ipady=50)
     CloseBtn = ttk.Button(self, text='Exit', command=lambda: exit())
     CloseBtn.grid(row=2, column=1, sticky='SE', padx=125, pady=25)
     NextBtn = ttk.Button(
         self,
         text='Next',
         command=lambda: controller.show_frame(StudentORTeacher))
     NextBtn.grid(
         row=2,
         column=1,
         sticky='SE',
         padx=25,
         pady=25,
     )
Beispiel #5
0
 def sel_tipo_reu_callback(self, ventana, frame, detalle, organizador,
                           rol_organizador, cant_participantes,
                           sala_reunion, estado_reunion, fecha_realizacion,
                           hora_inicio, hora_finalizacion):
     print("Sala:", sala_reunion)
     frame.grid_remove()
     frame.destroy()
     frame = Frame(ventana)
     frame.grid(row=1, column=2, rowspan=400, columnspan=400)
     frame.config(width=900)
     Label(frame, text="Tipo de reunión:", width=20).grid(row=1, column=2)
     var = IntVar()
     var.set(1)
     var.set(
         Radiobutton(frame, text="Única", variable=var,
                     value=1).grid(row=1, column=3))
     var.set(
         Radiobutton(frame, text="Periodica", variable=var,
                     value=2).grid(row=1, column=4))
     sgte_btn = Button(frame,
                       text="Siguiente",
                       activeforeground="black",
                       width=20,
                       command=lambda: self.agendar_callback(
                           frame, detalle, organizador, rol_organizador,
                           cant_participantes, sala_reunion, estado_reunion,
                           fecha_realizacion, hora_inicio,
                           hora_finalizacion, int(var.get())))
     sgte_btn.grid(row=2, column=2)
class update_class :
    def __init__(self):
        self.root = Tk()
        self.root.wm_maxsize(1000, 1000)
        self.root.wm_minsize(1000, 1000)

        self.frame1 = Frame(self.root, bg='gray')
        self.frame1.place(x=0, height=1000, y=0, width=1000)
        self.frame1.config()
        self.Welcome_label = Label(self.frame1, text="ADD", font=('Comic Sans MS', 70), bg='gray', fg='white')
        self.Welcome_label.pack()

        self.Choice_label = Label(self.frame1, text="Enter batch name - ", font=('Comic Sans MS', 45), bg='gray',
                                  fg='white')
        self.Choice_label.pack(padx=0, pady=80, anchor='n')

        self.batch_name = StringVar()

        ##Global

        self.batch_entry = Entry(self.frame1, bd=16, textvar=self.batch_name)
        self.batch_entry.pack(anchor='n')

        self.cont_button = Button(self.frame1, text='Continue', width=16, font=("Comic Sans MS", 16),command = self. add_student)

        self.cont_button.pack(pady=20)

    def add_student(self):
        global Batch_name
        Batch_name = self.batch_name.get()
        self.root.destroy()
        update_stu()
Beispiel #7
0
class Example(Frame):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.master.title("Color chooser")
        self.pack(fill=BOTH, expand=1)

        self.btn = Button(self, text="Choose Color", command=self.onChoose)
        self.btn.place(x=30, y=30)

        self.frame = Frame(self,
                           border=1,
                           relief=SUNKEN,
                           width=100,
                           height=100)
        self.frame.place(x=160, y=30)

    def onChoose(self):

        (rgb, hx) = colorchooser.askcolor()
        self.frame.config(bg=hx)
class firstPage:
    frame1: Frame

    def __init__(self):
        self.root = Tk()
        self.root.wm_maxsize(1000, 1000)
        self.root.wm_minsize(1000, 1000)

        self.frame1 = Frame(self.root, bg='gray')
        self.frame1.place(x=0, height=1000, y=0, width=1000)
        self.frame1.config()
        self.Welcome_label = Label(self.frame1, text="WELCOME", font=('Comic Sans MS', 70), bg='gray', fg='white')
        self.Welcome_label.pack()

        self.Choice_label = Label(self.frame1, text="Choose a option - ", font=('Comic Sans MS', 45), bg='gray',
                                  fg='white')
        self.Choice_label.pack(padx=0, pady=80, anchor='n')

        self.add_button = Button(self.frame1, text='Add a class', width=16, font=("Comic Sans MS", 16), command=self.add)
        self.add_button.pack(pady=20)

        self.update_button = Button(self.frame1, text='Add a student', width=16, font=("Comic Sans MS", 16),
                                    command=self.update)
        self.update_button.pack(pady=20)

        self.att_button = Button(self.frame1, text='Attendance', width=16, font=("Comic Sans MS", 16),
                                  command=self.att_b)
        self.att_button.pack(pady=20)

        self.gen_button = Button(self.frame1, text='Generate CSV', width=16, font=("Comic Sans MS", 16), command=self.csv_button)
        self.gen_button.pack(pady=20)

        self.exit_button = Button(self.frame1, text='Exit', width=16, font=("Comic Sans MS", 16),command=self.exit_b)
        self.exit_button.pack(pady=20)

        self.root.mainloop()

    def att_b(self):
        self.root.destroy()
        attendance()

    def csv_button(self):
        global count
        count = 1
        self.root.destroy()

        csv_b()

    def add(self):

        self.root.destroy()
        add_class()

    def update(self):

        self.root.destroy()
        update_class()

    def exit_b(self):
        self.root.destroy()
Beispiel #9
0
 def listar_reuniones_unicas_callback(self, ventana_principal, frame):
     lista_reuniones = reunion_controller.listar_reuniones_unicas()
     frame.grid_remove()
     frame.destroy()
     frame = Frame(ventana_principal)
     frame.grid(row=1, column=2, rowspan=200, columnspan=200)
     frame.config(width=900)
     self.mostrar_datos(frame, lista_reuniones)
class attendance:
    def __init__(self):
        self.root = Tk()
        self.root.wm_maxsize(1000, 1000)
        self.root.wm_minsize(1000, 1000)

        self.frame1 = Frame(self.root, bg='gray')
        self.frame1.place(x=0, height=1000, y=0, width=1000)
        self.frame1.config()
        self.Welcome_label = Label(self.frame1, text="Attendance", font=('Comic Sans MS', 70), bg='gray', fg='white')
        self.Welcome_label.pack()

        self.Choice_label = Label(self.frame1, text="Enter batch name - ", font=('Comic Sans MS', 45), bg='gray',
                                  fg='white')
        self.Choice_label.pack(padx=0, pady=80, anchor='n')

        self.batch_name = StringVar()

        ##Global

        self.batch_entry = Entry(self.frame1, bd=16, textvar=self.batch_name)
        self.batch_entry.pack(anchor='n')
##################

        self.topic_label = Label(self.frame1, text="Enter topic name - ", font=('Comic Sans MS', 45), bg='gray',
                                  fg='white')
        self.topic_label.pack(padx=0, pady=80, anchor='n')

        self.topic_name = StringVar()

        ##Global

        self.topic_entry = Entry(self.frame1, bd=16, textvar=self.topic_name)
        self.topic_entry.pack(anchor='n')

        self.cont_button = Button(self.frame1, text='Continue', width=16, font=("Comic Sans MS", 16),command = self. att_student)

        self.cont_button.pack(pady=20)

    def att_student(self):
        global count
        global Batch_name
        global topic_name
        count = 1
        Batch_name = self.batch_name.get()
        topic_name = self.topic_name.get()  + str("".join((str(date.today()).split('-'))))

        conn = sqlite3.connect("main_database.db")
        c = conn.cursor()
        #print('alter table ' + Batch_name + ' add column ' + topic_name + ' text ')
        c.execute('alter table '+Batch_name+' add column '+topic_name+' text ')

        conn.commit()



        self.root.destroy()
        act()
    def __init__(self, *args, **kwargs):
        BasePage.__init__(self, *args, **kwargs)

        main_frame = Frame(self, padx=5, pady=15)
        main_frame.pack(side="top", fill="both", expand=True)

        input_frame = Frame(main_frame, padx=15)
        input_frame.pack(side="left", fill="both", expand=True)

        self.course_var = StringVar(main_frame)
        self.professor_var = StringVar(main_frame)
        self.classroom_var = StringVar(main_frame)
        self.restriction_var = StringVar(main_frame)

        for s, v in [("Courses", self.course_var),
                     ("Professors", self.professor_var),
                     ("Classrooms", self.classroom_var),
                     ("Restrictions", self.restriction_var)]:
            f, _, _ = BasePage.get_labeled_input_field(input_frame,
                                                       "%s File" % s,
                                                       "Entry",
                                                       l_side="left",
                                                       i_side="left",
                                                       f_pady=8,
                                                       i_padx=15,
                                                       width=50,
                                                       textvariable=v,
                                                       required=True)

            i = PhotoImage(
                Image.open("./resources/folder.png").resize((30, 30),
                                                            Image.ANTIALIAS))
            btn = Button(f, image=i, command=partial(self.select_file, v))
            btn.image = i
            btn.pack(side="left")

        generation_frame = Frame(main_frame)
        generation_frame.pack_propagate(0)
        generation_frame.config(height=100, width=200)
        generation_frame.pack(side="left", fill="both", expand=True)

        Button(generation_frame,
               text="Generate a random schedule!",
               command=self.do_generation).pack(side="top", expand=True)

        self.status_message_var = StringVar(generation_frame)
        self.status_message_label = Label(generation_frame,
                                          textvariable=self.status_message_var,
                                          wraplength=200)
        self.status_message_label.pack(side="top", fill="both", expand=True)
        self.clear_status_message()

        self.gen_urls = None
        self.gen_mutex = Lock()
        self.keep_gen_thread_alive = True
        self.gen_thread = Thread(target=self._do_generation_requests)
        self.gen_thread.start()
Beispiel #12
0
 def __init__(self, parent, controller):
     self.file = ''
     self.SeatNum = StringVar()
     Frame.__init__(self, parent)
     Frame.config(self, bg=bg)
     label = Label(self,
                   text='Student',
                   font=SUPER_LARGE_FONT,
                   bg=bg,
                   fg='white')
     label.grid(row=0, column=3, pady=10, padx=120)
     label2 = Label(self, text='', bg=bg)
     label2.grid(row=1, column=1, pady=25)
     back = ttk.Button(
         self,
         text='<Back',
         command=lambda: controller.show_frame(StudentORTeacher))
     back.grid(row=0, column=0, padx=0, pady=10)
     SeatNumEntry = ttk.Entry(self, textvariable=self.SeatNum)
     SeatNumEntry.grid(row=5, column=0, padx=10, pady=10)
     addFileBtn = ttk.Button(
         self,
         text='Add File',
         command=lambda: TryExcept(partial(self.getFile)))
     addFileBtn.grid(row=6, column=0)
     self.fileStatus = Label(self, text='Add a File', bg=bg, fg='white')
     self.fileStatus.grid(row=5, column=3, padx=100)
     ExportPDF = ttk.Button(self,
                            text='Export Selected',
                            command=self.Export,
                            width=25)
     ExportPDF.grid(row=8, column=5, pady=5)
     SubVSMks = ttk.Button(self, text='Subject VS Marks', width=25)
     SubVSMks.grid(row=3, column=5, pady=10)
     AllSem = ttk.Button(
         self,
         text='Your Performance VS Class',
         command=lambda: TryExcept(partial(self.all_sem_performance)),
         width=25)
     AllSem.grid(row=4, column=5, pady=10)
     IndStud = ttk.Button(self,
                          text='Individual Student',
                          command=lambda: TryExcept(partial(self.IndStud)),
                          width=25)
     IndStud.grid(row=5, column=5)
     StudentDetail = ttk.Button(
         self,
         text='Student Detail',
         command=lambda: TryExcept(partial(self.StudentDetail)),
         width=25)
     StudentDetail.grid(row=6, column=5, pady=10)
     self.cb = [IntVar(), IntVar()]
     AllSemRB = Checkbutton(self, text='', variable=self.cb[0], bg=bg)
     AllSemRB.grid(row=4, column=6, padx=5)
     IndStudRB = Checkbutton(self, text='', variable=self.cb[1], bg=bg)
     IndStudRB.grid(row=5, column=6, pady=5, padx=5)
     self.SeatData = array([])
Beispiel #13
0
 def game_logo(parent):
     logo_frame = Frame(parent)
     logo_frame.config(bg="black")
     logo = ttk.Label(logo_frame, text="Pong!")
     logo.config(background="black",
                 foreground="white",
                 font="Verdana 30 bold")
     logo.pack()
     return logo_frame
Beispiel #14
0
    def __init__(self, parent, **options):
        Frame.__init__(self, parent, **options)

        self.config(bg='green')
        pp_label = Label(self)
        pp_label.config(text='Pairplot Controls')
        pp_label.grid(row=0, column=0, sticky='ew')
        window_prop = Frame(self)
        window_prop.config(width=10, height=150, bg='lavender')
        window_prop.grid(row=0, column=1, sticky='nsew')
Beispiel #15
0
    def __init__(self, parent, **options):
        Frame.__init__(self, parent, **options)

        self.config(bg='purple')
        cm_label = Label(self)
        cm_label.config(text='Correlation Matrix Controls')
        cm_label.grid(row=0, column=0, sticky='ew')
        window_prop = Frame(self)
        window_prop.config(width=10, height=150, bg='pink')
        window_prop.grid(row=0, column=1, sticky='nsew')
Beispiel #16
0
    def __init__(self, parent, **options):
        Frame.__init__(self, parent, **options)

        self.config(bg='blue')
        bp_label = Label(self)
        bp_label.config(text='Barplot Controls')
        bp_label.grid(row=0, column=0, sticky='ew')
        window_prop = Frame(self)
        window_prop.config(width=10, height=150, bg='cyan')
        window_prop.grid(row=0, column=1, sticky='nsew')
    def init_gui(self, cim):
        """Make a new tkinter window"""
        root = Tk()
        root.grid_rowconfigure(0, weight=1)
        root.columnconfigure(0, weight=1)
        root.title(cim)
        root.resizable(False, True)
        frame_main = Frame(root)
        frame_main.grid(sticky='news')

        # Create a frame for the canvas with non-zero row&column weights
        frame_canvas = Frame(frame_main)
        frame_canvas.grid(row=0, column=0)
        frame_canvas.grid_rowconfigure(0, weight=1)
        frame_canvas.grid_columnconfigure(0, weight=1)
        # Set grid_propagate to False to allow 5-by-5 buttons resizing later
        frame_canvas.grid_propagate(False)

        # Add a canvas in that frame
        canvas = Canvas(frame_canvas)
        canvas.grid(row=0, column=0)
        canvas.pack(fill="both", expand=True)

        # Link a scrollbar to the canvas
        vsb = Scrollbar(frame_canvas, orient="vertical", command=canvas.yview)
        vsb.grid(row=0, column=1, sticky='ns')
        canvas.configure(yscrollcommand=vsb.set)

        # Create a frame to contain the scrollable content
        frame_progress = Frame(canvas)
        canvas.create_window((0, 0), window=frame_progress, anchor='nw')
        self.canvas = canvas
        self.frame_main = frame_main

        for process in self.process_list:
            self.init_new_progressbar(frame_progress,
                                      p_length=300,
                                      p_process=process)
        frame_progress.update_idletasks()
        p = self.process_list[0]
        frame_width = p['task_label'].winfo_width(
        ) + p['progressbar'].winfo_width() + p['status_label'].winfo_width()
        rows = 20 if len(self.process_list) > 20 else len(self.process_list)
        frame_height = (p['progressbar'].winfo_height() * rows)
        frame_canvas.config(width=frame_width + vsb.winfo_width(),
                            height=frame_height)
        canvas.config(width=frame_width + vsb.winfo_width(),
                      height=frame_height)
        canvas.config(scrollregion=canvas.bbox("all"))
        canvas.update()

        self.frame_main.bind("<Configure>", self.configure)

        return root
Beispiel #18
0
class Topbar:
    def __init__(self, root):
        self.topbar = Frame(root)

        self.topbar.config(border="2", height=50)
        self.topbar.pack(side="top", fill="x", pady=30, padx=30)

        self.caja = Entry(self.topbar)
        self.caja.config(bg="grey", font="Calibri 14 bold")
        self.caja.place(relwidth=0.78, relheight=0.8)

        self.button = Button(self.topbar, text="Buscar Ruta")
        self.button.place(relx=0.8, relwidth=0.2, relheight=0.8)
Beispiel #19
0
    def vista_agendar_reunion_callback(self, ventana_principal, frame):
        frame.destroy()
        frame = Frame(ventana_principal)
        frame.grid(row=1, column=2, rowspan=400, columnspan=400)
        frame.config(width=900)

        Label(frame, text="Detalle:", width=20).grid(row=1, column=2)
        detalle_reunion = entry.add_entry(frame)
        detalle_reunion.config(width=50)
        detalle_reunion.grid(row=1, column=3, columnspan=3)

        Label(frame, text="Organizador:", width=20).grid(row=2, column=2)
        organizador = entry.add_entry(frame)
        organizador.grid(row=2, column=3, columnspan=3)

        Label(frame, text="Rol del organizador:", width=20).grid(row=3,
                                                                 column=2)
        rol_organizador = entry.add_entry(frame)
        rol_organizador.grid(row=3, column=3, columnspan=3)

        Label(frame, text="Cant. participantes:", width=20).grid(row=4,
                                                                 column=2)
        cant_participantes = entry.add_entry(frame)
        cant_participantes.grid(row=4, column=3, columnspan=3)

        Label(frame, text='Fecha realizacion:', width=20).grid(row=5, column=2)
        dia = entry.add_entry(frame)
        dia.config(width=10)
        dia.insert(END, "DD")
        dia.grid(row=5, column=3)
        mes = entry.add_entry(frame)
        mes.config(width=10)
        mes.insert(END, "MM")
        mes.grid(row=5, column=4)
        anho = entry.add_entry(frame)
        anho.config(width=10)
        anho.grid(row=5, column=5)
        anho.insert(END, "AAAA")

        sgte_btn = Button(
            frame,
            text="Siguiente",
            activeforeground="black",
            width=20,
            command=lambda: self.agregar_datos_callback(
                ventana_principal, frame,
                detalle_reunion.get().upper(),
                organizador.get().upper(),
                rol_organizador.get().upper(), int(cant_participantes.get()),
                anho.get() + "-" + mes.get() + "-" + dia.get()))
        sgte_btn.grid(row=6, column=2)
class csv_b:
    def __init__(self):
        self.root = Tk()
        self.root.wm_maxsize(1000, 1000)
        self.root.wm_minsize(1000, 1000)

        self.frame1 = Frame(self.root, bg='gray')
        self.frame1.place(x=0, height=1000, y=0, width=1000)
        self.frame1.config()
        self.Welcome_label = Label(self.frame1, text="WELCOME", font=('Comic Sans MS', 70), bg='gray', fg='white')
        self.Welcome_label.pack()

        self.Choice_label = Label(self.frame1, text="Enter the batch name - ", font=('Comic Sans MS', 45), bg='gray',
                                  fg='white')
        self.Choice_label.pack(padx=0, pady=80, anchor='n')

        self.batch_name = StringVar()

        ##Global

        self.batch_entry = Entry(self.frame1, bd=16, textvar=self.batch_name)
        self.batch_entry.pack(anchor='n')
        global Batch_name
        Batch_name = self.batch_name.get()
        self.add_button = Button(self.frame1, text='Generate', width=16, font=("Comic Sans MS", 16), command=self.csv_bu)
        self.add_button.pack(pady=20)

    def csv_bu(self):

        global count
        conn = sqlite3.connect("main_database.db")
        c = conn.cursor()
        #print('select count(*) from ' + self.batch_name.get())
        c.execute('select count(*) from ' + self.batch_name.get())
        a = c.fetchone()
        if count > a[0]:
            self.root.destroy()
            firstPage()

        # print(a[0])
        c.execute('select * from ' + self.batch_name.get() + ' where Roll_no = ' + str(count))
        student1 = c.fetchone()
        student = student1
        f = open(self.batch_name.get()+".csv", "a+")
        writer = csv.writer(f)
        writer.writerow(student)

        f.close()
        count += 1
        self.csv_bu()
        conn.commit()
class update_stu:
    def __init__(self):
        self.root = Tk()
        self.root.wm_maxsize(1000, 1000)
        self.root.wm_minsize(1000, 1000)

        self.frame1 = Frame(self.root, bg='gray')
        self.frame1.place(x=0, height=1000, y=0, width=1000)
        self.frame1.config()
        self.Welcome_label = Label(self.frame1, text="ADD", font=('Comic Sans MS', 70), bg='gray', fg='white')
        self.Welcome_label.pack()

        self.Choice_label = Label(self.frame1, text="Enter Student name - ", font=('Comic Sans MS', 45), bg='gray',
                                  fg='white')
        self.Choice_label.pack(padx=0, pady=80, anchor='n')

        self.st_name = StringVar()

        ##Global
        global Student_name
        self.st_entry = Entry(self.frame1, bd=16, textvar=self.st_name)
        self.st_entry.pack(anchor='n')


        self.add_button = Button(self.frame1, text='Add', width=16, font=("Comic Sans MS", 16),command = self.stu)
        self.add_button.pack(pady=20)

        self.done_button = Button(self.frame1, text='Done', width=16, font=("Comic Sans MS", 16),command = self.done)
        self.done_button.pack(pady=20)

    def stu(self):
        if self.st_name:
            conn = sqlite3.connect("main_database.db")
            global Batch_name
            stu_name = str()
            stu_name = self.st_name.get()
            c = conn.cursor()
            c.execute('create table if not exists '+ Batch_name+ ' (Roll_no integer primary key,Name Text)')
            c.execute('insert into ' + Batch_name + '(Name) values("'+stu_name+'")')
            conn.commit()
            self.root.destroy()
            firstPage()

        else:
            messagebox.showinfo("Warning", "Fill enteries")

    def done(self):
        self.root.destroy()
        firstPage()
Beispiel #22
0
 def __init__(self, image, initialField, initialText):
     frm = Frame(root)
     frm.config(background="white")
     self.image = PhotoImage(format="gif", data=images[image.upper()])
     self.imageDimmed = PhotoImage(format="gif", data=images[image])
     self.img = Label(frm)
     self.img.config(borderwidth=0)
     self.img.pack(side="left")
     self.fld = Text(frm, **fieldParams)
     self.initScrollText(frm, self.fld, initialField)
     frm = Frame(root)
     self.txt = Text(frm, **textParams)
     self.initScrollText(frm, self.txt, initialText)
     for i in range(2):
         self.txt.tag_config(colors[i], background=colors[i])
         self.txt.tag_config("emph" + colors[i], foreground=emphColors[i])
 def vista_lista_salas_callback(self, ventana_principal, frame):
     frame.grid_remove()
     frame.destroy()
     frame = Frame(ventana_principal)
     frame.grid(row=1, column=2, rowspan=200, columnspan=200)
     frame.config(width=900)
     lista = Text(frame)
     lista_salas = controller.listar_salas()
     count = 0
     for i in lista_salas:
         count += 1
         lista.insert(END, "Nombre sala: " + i.nombre_sala + "\n")
         lista.insert(END, "Max. ocupantes: " + str(i.max_ocupantes) + "\n")
         lista.insert(END, "Estado de sala: " + i.estado_sala + "\n\n")
     lista.config(width=900, state=DISABLED)
     lista.grid(row=1, column=2, rowspan=count)
    def create_region(self, tid):
        """
        create and fill frame-region inside frame
        """
        region_owner = self.board[tid]["owner"]
        if region_owner is None:
            owner_text = "Unoccupied"
            tile_color = None
            own_tile = False
        else:
            own_tile = True if region_owner == game.player.name else False
            owner_text = "Owner: " + str(region_owner)
            tile_color = COLOURS[self.player_names.index(region_owner)]

        my_frame = Frame(self.frame_map, height=3 * self.size - 1,
                         width=3 * self.size - 1, bd=1, relief="flat",
                         bg = tile_color)
            
        x = int(tid.split("_")[1])
        N = int(sqrt(len(self.board)))
        my_frame.grid(row=int((x - 1)/ N),column=(x - 1) % N)
        counter_text = "Troops: " + str(game.board[tid]["counters"])

        button_pic = Button(my_frame, image = self.gifs[game.board[tid]["terrain"]],
                    name = tid, command = lambda: self.conquer_region(tid))
        label_owner = Label(my_frame, text=owner_text, bg = tile_color)
        label_counters = Label(my_frame, text=counter_text, bg = tile_color)
        
        if own_tile:
            button_plus = Button(my_frame, image = self.gifs["plus"],
                                 command=lambda: self.reinforce(tid, 1))
            button_minus = Button(my_frame, image = self.gifs["minus"],
                                  command=lambda: self.reinforce(tid, -1))

            button_plus.grid(row = 0, column=0)
            button_pic.grid(row = 0, column=1)
            button_minus.grid(row=0, column=2)

            label_owner.grid(row=1, columnspan=3)
            label_counters.grid(row=2, columnspan=3)
        else:
            button_pic.grid(row=0, column=1)
            label_owner.grid(row=1, column=1)
            label_counters.grid(row=2, column=1)

        if tid in game.player.adjacent_regions:
            my_frame.config(relief = "raised")
Beispiel #25
0
def printMainFrame(canvas, user):

    canvas.config(height=500, width=690)

    frame = Frame()
    frame.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.8)


    frame1 = Frame(frame)
    frame1.config(bd=1, relief="solid")
    frame1.grid(column=0, row=0, padx= 20, ipadx=10, ipady=10)
    frame1.tkraise()

    frame2 = Frame(frame)
    frame2.config(bd=1, relief="solid")
    frame2.grid(column=1, row=0, padx=20, ipadx=10, ipady=10)
    frame2.tkraise()


    uis = getUIByID_user(user.id)
    for ui in uis:
        if ui[0] == 'RegistryOfAuxiliary': 
            RegistryOfAuxiliary(frame1, 0)
        elif ui[0] == 'RegistryOfExams': 
            RegistryOfExams(frame2, 0)
        elif ui[0] == 'ListOfApplications': 
            ListOfApplications(frame1, 0, user.id)
        elif ui[0] == 'SeeExamNotes': 
            SeeExamNotes(frame2, 1, user.id)
        elif ui[0] == 'SeeListOfStudents': 
            SeeListOfStudents(frame1, 0, user.id)
        elif ui[0] == 'TakeAttendeeList': 
            TakeAttendeeList(frame2, 1, user.id)
        
        



    # RegistryOfAuxiliary(frame, 0)
    # RegistryOfExams(frame, 1)

    # ListOfApplications(frame, 0, user.id)
    # SeeExamNotes(frame, 1, user.id)

    # SeeListOfStudents(frame, 0, user.id)
    # TakeAttendeeList(frame, 1, user.id)
class frame():
	
	frame =""

	def crearFrame(self):
		self.frame = Frame()
		self.frame.pack()
		self.frame.config(bg="red")
		self.frame.config(width="500", height="400")
		return self.frame

	def agregar(self,frame):
		texto = input('ingrese el texto a mostrar: ')
		color = input('ingrese el color del texto a mostrar: ')
		imagen= PhotoImage(file="goku.png")
		Label(frame,image=imagen).place(x=180,y=20)
		#Label(frame, text=texto,fg=color).place(x=180,y=20)
Beispiel #27
0
    def plantilla(self):
        m = self.marco()
        cantidad = int(input('ingrese la cantidad de labels a crear: '))
        plantilla = Frame(m, width='350', height='500')
        imagen = PhotoImage(file='Python.png')
        Label(plantilla, image=imagen).place(x=1, y=1)
        plantilla.pack(fill='y', expand='True')

        for z in range(0, cantidad):
            texto = input('Escribe el texto del label ' + str(z) + ': ')
            x = int(
                input('Escribe el eje x del texto del label ' + str(z) + ': '))
            y = int(
                input('Escribe el eje y del texto del label ' + str(z) + ': '))
            Label(plantilla, text=texto).place(x=x, y=y)
        plantilla.config(bg='blue')
        plantilla.mainloop()
Beispiel #28
0
    def setup_grating_options(self, frame: tk.Frame):
        """
        Set up grating options entry widgets
        """
        frame.config(borderwidth=2, relief=tk.SUNKEN)

        tk.Label(frame, text='Rotation Angle', font='bold').grid(row=0,
                                                                 column=0)
        self.entry_angle = tk.Entry(frame, width=15)
        self.entry_angle.grid(row=1, column=0)

        tk.Label(frame, text='Grating Type', font='bold').grid(row=0, column=1)
        self.types = {'SawTooth', 'Triangle', 'Circle', 'Custom'}
        self.type_var = tk.StringVar(frame)
        self.type_var.set('SawTooth')
        tk.OptionMenu(frame, self.type_var, *self.types).grid(row=1, column=1)

        tk.Label(frame, text='Ymin', font='bold').grid(row=2, column=0)
        self.entry_ymin = tk.Entry(frame, width=15)
        self.entry_ymin.grid(row=3, column=0)

        tk.Label(frame, text='Ymax', font='bold').grid(row=2, column=1)
        self.entry_ymax = tk.Entry(frame, width=15)
        self.entry_ymax.grid(row=3, column=1)

        tk.Label(frame, text='Period Width (pixels)',
                 font='bold').grid(row=4, column=0)
        self.entry_period = tk.Entry(frame, width=15)
        self.entry_period.grid(row=5, column=0)

        self.g_reverse = tk.IntVar()
        tk.Checkbutton(frame, text='Reverse Grating',
                       variable=self.g_reverse).grid(row=5, column=1)

        selection_frame = tk.Frame(frame,
                                   borderwidth=2,
                                   relief=tk.SOLID,
                                   pady=4)
        selection_frame.grid(row=6, column=0, columnspan=2)
        tk.Label(selection_frame, text='Grating Selection',
                 font='bold').grid(row=0, column=0)
        self.button_image = tk.Button(selection_frame,
                                      text='Select a Grating',
                                      command=self.grating_select)
        self.button_image.grid(row=0, column=1)
class Example(ExampleFrame):
    def __init__(self):
        super().__init__("Dialog - Color Chooser", 480, 200)

    def init_ui(self):
        self.btn = Button(self, text="Choose Color", command=self.on_choose)
        self.btn.place(x=30, y=30)

        self.frame = Frame(self,
                           border=1,
                           relief=SUNKEN,
                           width=100,
                           height=100)
        self.frame.place(x=160, y=30)

    def on_choose(self):
        (rgb, hx) = colorchooser.askcolor()
        self.frame.config(bg=hx)
Beispiel #30
0
 def menu(self, controller):
     menu_frame = Frame(self)
     menu_frame.config(bg="black")
     buttons = {
         "start_game":
         ttk.Button(menu_frame,
                    text="Start game",
                    command=lambda: controller.show_frame("Game")),
         "exit_game":
         ttk.Button(menu_frame,
                    text="Exit game",
                    command=lambda: sys.exit(0))
     }
     counter = 0
     for button in buttons.keys():
         buttons[button].config(style="W.TButton")
         buttons[button].grid(row=counter, pady=5)
         counter += 1
     return menu_frame
Beispiel #31
0
class ScrollableScreen(Screen):
    def __init__(self, parent, app):
        super().__init__(parent=parent, app=app)

    def _init_scrollframe(self):
        self.canvas = Canvas(self,)
        self.container = Frame(self.canvas,
                               #    borderwidth=1,
                               #    relief="solid"
                               )
        self.canvas.config(background=WHITE)
        self.container.config(background=WHITE)

        scrollbar_width = SCROLL_BAR_WIDTH
        self.scrollbar = Scrollbar(self, orient="vertical", width=scrollbar_width,
                                   command=self.canvas.yview)
        self.update_idletasks()
        self.canvas.config(
            width=self.app.width - scrollbar_width,
            height=self.app.height,
            yscrollcommand=self.scrollbar.set,
        )

        self.scrollbar.pack(side="right", fill="y")
        self.canvas.pack(side="left", fill="both", expand=True)
        self.canvas.create_window((0, 0), window=self.container, anchor="nw",)

        self.container.bind("<Configure>", self._onFrameConfigure)

    def _before_init_components(self):
        """
          Hàm phụ trợ trước khi khởi tạo màn hình
        """
        self._init_scrollframe()

    def _onFrameConfigure(self, event):
        '''Reset the scroll region to encompass the inner frame'''
        self.canvas.config(scrollregion=self.canvas.bbox("all"))

    def _init_components(self):
        """
Beispiel #32
0
class Edit(Frame):
    def __init__(self, master, valves):
        Frame.__init__(self, master, bg='sky blue', width=1366, height=768)
        self.master = master

        self.canvas = Canvas(self, height=630, width=1320, bg='sky blue')
        self.frame = Frame(self.canvas, bg='sky blue')
        self.scrollbar = Scrollbar(self, orient='vertical', command=self.canvas.yview)
        self.scrollbar.configure(activebackground='DarkRed', background='red', width=40)
        self.canvas.configure(yscrollcommand=self.scrollbar.set, scrollregion=[0, 0, 1366, 800])

        self.scrollbar.pack(side='right', fill='y')
        self.canvas.pack(side='left')
        self.canvas.create_window((0, 0), window=self.frame, anchor='nw')
        
        self.valves = valves
        self.frame.config(bg='sky blue')

        index = 0
        while index < 10:
            self.frame.grid_rowconfigure(index, minsize=80)
            self.frame.grid_columnconfigure(index, minsize=30)
            index += 1

        self.frame.grid_columnconfigure(3, minsize=130)
        self.frame.grid_columnconfigure(6, minsize=130)

        interval = Label(self.frame, text='RUN', width=6, font=('Lucida Console', 30))
        interval.grid(row=0, column=2)
        interval.config(bg='sky blue', fg='RoyalBlue4')

        delay = Label(self.frame, text='DELAY', width=6, font=('Lucida Console', 30))
        delay.grid(row=0, column=5)
        delay.config(bg='sky blue', fg='RoyalBlue4')

        self.seconds = [IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar(),
                        IntVar()]

        for each in self.seconds:
            each.set(0)

        self.set_seconds()

        self.valve_label = [Label(self.frame, textvariable=self.valves[0].get_name()),
                            Label(self.frame, textvariable=self.valves[1].get_name()),
                            Label(self.frame, textvariable=self.valves[2].get_name()),
                            Label(self.frame, textvariable=self.valves[3].get_name()),
                            Label(self.frame, textvariable=self.valves[4].get_name()),
                            Label(self.frame, textvariable=self.valves[5].get_name()),
                            Label(self.frame, textvariable=self.valves[6].get_name()),
                            Label(self.frame, textvariable=self.valves[7].get_name())
                            ]
       
        row = 1
        for each in self.valve_label:
            each.grid(row=row, column=0)
            each.config(width=8, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 1

        self.minus_image = PhotoImage(file="img/minus.png").subsample(x=5, y=5)
        self.minusInterval = [Button(self.frame, image=self.minus_image, command=lambda: self.subtract(0)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(1)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(2)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(3)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(4)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(5)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(6)),
                              Button(self.frame, image=self.minus_image, command=lambda: self.subtract(7)),
                              ]

        row = 1
        for each in self.minusInterval:
            each.grid(row=row, column=1)
            each.config(bg='SkyBlue4', activebackground='midnight blue', fg='white')
            row += 1

        self.labelInterval = [Label(self.frame, textvariable=self.seconds[0]),
                              Label(self.frame, textvariable=self.seconds[1]),
                              Label(self.frame, textvariable=self.seconds[2]),
                              Label(self.frame, textvariable=self.seconds[3]),
                              Label(self.frame, textvariable=self.seconds[4]),
                              Label(self.frame, textvariable=self.seconds[5]),
                              Label(self.frame, textvariable=self.seconds[6]),
                              Label(self.frame, textvariable=self.seconds[7])]
        row = 1
        for each in self.labelInterval:
            each.grid(row=row, column=2)
            each.config(width=4, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 1

        self.plus_image = PhotoImage(file="img/plus.png").subsample(x=5, y=5)
        self.plusInterval = [Button(self.frame, image=self.plus_image, command=lambda: self.add(0)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(1)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(2)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(3)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(4)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(5)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(6)),
                             Button(self.frame, image=self.plus_image, command=lambda: self.add(7)),
                             ]

        row = 1
        for each in self.plusInterval:
            each.grid(row=row, column=3)
            each.config(bg='SkyBlue4', activebackground='midnight blue', fg='white')
            row += 1

        self.minusDelay = [Button(self.frame, image=self.minus_image, command=lambda: self.subtract(8)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(9)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(10)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(11)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(12)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(13)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(14)),
                           Button(self.frame, image=self.minus_image, command=lambda: self.subtract(15)),
                           ]
        row = 1
        for each in self.minusDelay:
            each.grid(row=row, column=4)
            each.config(bg='SkyBlue4', activebackground='midnight blue', fg='white')
            each.config()
            row += 1

        self.labelDelay = [Label(self.frame, textvariable=self.seconds[8]),
                           Label(self.frame, textvariable=self.seconds[9]),
                           Label(self.frame, textvariable=self.seconds[10]),
                           Label(self.frame, textvariable=self.seconds[11]),
                           Label(self.frame, textvariable=self.seconds[12]),
                           Label(self.frame, textvariable=self.seconds[13]),
                           Label(self.frame, textvariable=self.seconds[14]),
                           Label(self.frame, textvariable=self.seconds[15])]
        row = 1
        for each in self.labelDelay:
            each.grid(row=row, column=5)
            each.config(width=4, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 1

        self.plusDelay = [Button(self.frame, image=self.plus_image, command=lambda: self.add(8)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(9)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(10)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(11)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(12)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(13)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(14)),
                          Button(self.frame, image=self.plus_image, command=lambda: self.add(15)),
                          ]
        row = 1
        for each in self.plusDelay:
            each.grid(row=row, column=6)
            each.config(bg='SkyBlue4', activebackground='midnight blue')
            each.config()
            row += 1

        self.motor_image = PhotoImage(file="img/motor.png").subsample(x=5, y=5)
        self.motor = [Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(0)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(1)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(2)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(3)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(4)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(5)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(6)),
                      Button(self.frame, text='MOTOR', image=self.motor_image, command=lambda: self.motor_on(7))]

        row = 1
        for each in self.motor:
            each.grid(row=row, column=7)
            each.config(bg='SkyBlue4', activebackground='midnight blue', fg='white')
            each.config()
            row += 1

        self.adv_image = PhotoImage(file="img/options.png").subsample(x=5, y=5)
        self.adv = [Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(0)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(1)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(2)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(3)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(4)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(5)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(6)),
                    Button(self.frame, image=self.adv_image, command=lambda: self.motor_on(7)),
                    ]

        row = 1
        for each in self.adv:
            each.grid(row=row, column=8)
            each.config(bg='SkyBlue4', activebackground='midnight blue', fg='white')
            row += 1
            
        self.set_seconds()
        self.lock()
            
    def lock(self):
        index = 0
        while index < 8:
            self.minusInterval[index].config(state='disabled')
            self.minusDelay[index].config(state='disabled')
            self.plusInterval[index].config(state='disabled')
            self.plusDelay[index].config(state='disabled')
            self.motor[index].config(state='disabled')
            self.adv[index].config(state='disabled')
            index += 1

    def set_seconds(self):
        index = 0
        while index < 8:
            if self.valves[index].get_setting() == 'DEFAULT':
                interval = self.valves[index].get_interval()
                # setting seconds for runtime
                self.seconds[index].set(interval[0])
                # setting seconds for delay
                self.seconds[index + 8].set(interval[1])
            else:
                self.minusInterval[index].config(state='disabled')
                self.minusDelay[index].config(state='disabled')
                self.plusInterval[index].config(state='disabled')
                self.plusDelay[index].config(state='disabled')
            index += 1

    def get_intervals(self):
        return self.seconds

    def motor_on(self, index):

        if self.minusDelay[index].cget('state') == 'normal':
            self.minusInterval[index].config(state='disabled')
            self.minusDelay[index].config(state='disabled')
            self.plusInterval[index].config(state='disabled')
            self.plusDelay[index].config(state='disabled')
            self.adv[index].config(state='disabled')
            self.seconds[index].set(0)
            self.seconds[index + 8].set(0)
        else:
            interval = self.valves[index].get_interval()
            self.minusInterval[index].config(state='normal')
            self.minusDelay[index].config(state='normal')
            self.plusInterval[index].config(state='normal')
            self.plusDelay[index].config(state='normal')
            self.adv[index].config(state='normal')
            self.seconds[index].set(interval[0])
            self.seconds[index + 8].set(interval[1])

    def add(self, number):
        if self.seconds[number].get() < 99:
            self.seconds[number].set(self.seconds[number].get() + 1)

    def subtract(self, number):
        if self.seconds[number].get() > 0:
            self.seconds[number].set(self.seconds[number].get() - 1)
Beispiel #33
0
class RunScreen(Frame):
    def __init__(self, master, valves):
        Frame.__init__(self, master, bg='sky blue', width=950, height=750)
        self.master = master
        self.valves = valves
        self.threads = []
        
        self.canvas = Canvas(self, height=750, width=950, bg='sky blue')
        self.frame = Frame(self.canvas, bg='sky blue')
        self.scrollbar = Scrollbar(self, orient='vertical', command=self.canvas.yview)
        self.scrollbar.configure(activebackground='DarkRed', background='red', width=40)
        self.canvas.configure(yscrollcommand=self.scrollbar.set, scrollregion=[0, 0, 1366, 1300])

        self.scrollbar.pack(side='right', fill='y')
        self.canvas.pack(side='left')
        self.canvas.create_window((0, 0), window=self.frame, anchor='nw')

        self.frame.config(bg='sky blue')

        self.valve_num = [Label(self.frame, text='1'),
                            Label(self.frame, text='2'),
                            Label(self.frame, text='3'),
                            Label(self.frame, text='4'),
                            Label(self.frame, text='5'),
                            Label(self.frame, text='6'),
                            Label(self.frame, text='7'),
                            Label(self.frame, text='8')]

        row = 0
        for each in self.valve_num:
            each.grid(row=row, column=0)
            each.config(width=4, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 2

        self.valve_name = [Label(self.frame, textvariable=valves[0].get_name()),
                            Label(self.frame, textvariable=valves[1].get_name()),
                            Label(self.frame, textvariable=valves[2].get_name()),
                            Label(self.frame, textvariable=valves[3].get_name()),
                            Label(self.frame, textvariable=valves[4].get_name()),
                            Label(self.frame, textvariable=valves[5].get_name()),
                            Label(self.frame, textvariable=valves[6].get_name()),
                            Label(self.frame, textvariable=valves[7].get_name())]

        row = 0
        for each in self.valve_name:
            each.grid(row=row, column=2)
            each.config(width=15, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 2

        valve = 0
        self.valve_activity = []
        self.on_image = PhotoImage(file="img/yes.png").subsample(x=6, y=6)
        self.off_image = PhotoImage(file="img/no.png").subsample(x=6, y=6)
        for each in self.valves:
            if each.get_setting() is 'INACTIVE':
                self.valve_activity.append(Button(self.frame, image=self.off_image, text='OFF', command=lambda: self.activate(valve)))
            else:
                self.valve_activity.append(Button(self.frame, image=self.on_image, text='ON', command=lambda: self.activate(valve)))
            valve += 1

        row = 0
        for each in self.valve_activity:
            each.grid(row=row, column=1)
            each.config(bg='SkyBlue4', activebackground='midnight blue')
            each.config()
            row += 2

        self.valve_action_a = [Label(self.frame, textvariable=valves[0].get_action_a()),
                               Label(self.frame, textvariable=valves[1].get_action_a()),
                               Label(self.frame, textvariable=valves[2].get_action_a()),
                               Label(self.frame, textvariable=valves[3].get_action_a()),
                               Label(self.frame, textvariable=valves[4].get_action_a()),
                               Label(self.frame, textvariable=valves[5].get_action_a()),
                               Label(self.frame, textvariable=valves[6].get_action_a()),
                               Label(self.frame, textvariable=valves[7].get_action_a())]

        row = 0
        for each in self.valve_action_a:
            each.grid(row=row, column=3)
            each.config(width=10, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4', anchor='w')
            row += 2

        self.valve_action_b = [Label(self.frame, textvariable=valves[0].get_action_b()),
                               Label(self.frame, textvariable=valves[1].get_action_b()),
                               Label(self.frame, textvariable=valves[2].get_action_b()),
                               Label(self.frame, textvariable=valves[3].get_action_b()),
                               Label(self.frame, textvariable=valves[4].get_action_b()),
                               Label(self.frame, textvariable=valves[5].get_action_b()),
                               Label(self.frame, textvariable=valves[6].get_action_b()),
                               Label(self.frame, textvariable=valves[7].get_action_b())]

        row = 1
        for each in self.valve_action_b:
            each.grid(row=row, column=3)
            each.config(width=10, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4', anchor='w')
            row += 2

        self.lightsA = [LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False),
                        LED(self.frame, 30, 'green1', 'green', 'dark green', 'Dark Green', False)
                        ]

        self.lightsB = [LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False),
                        LED(self.frame, 30, 'red', 'dark red', 'red4', 'DarkRed', False)
                        ]

    #Turn valve on or off
    def activate(self, index):
        if self.valve_activity[index].cget('text') == 'ON':
            self.valve_activity[index].config(text='OFF', image=self.off_image)
        else:
            self.valve_activity[index].config(text='ON', image=self.on_image)

    #Set up layout of GUI
    def make_frame(self):
        row = 0
        for each in self.lightsA:
            each.grid(row=row, column=4, padx=10, pady=20)
            row += 2

        row = 1
        for each in self.lightsB:
            each.grid(row=row, column=4, padx=10, pady=20)
            row += 2

    #Start all valves, if not disabled. May be able to shut off each valve individually.
    def run_all(self, boolean):
        
        if boolean:

            self.threads = [threading.Thread(target=self.run_valve, args=(0, self.valves[0].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(1, self.valves[1].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(2, self.valves[2].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(3, self.valves[3].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(4, self.valves[4].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(5, self.valves[5].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(6, self.valves[6].get_interval() )),
                            threading.Thread(target=self.run_valve, args=(7, self.valves[7].get_interval() )),
                            ]
            for thread in self.threads:
                thread.start()
            
        else:
            for each in self.valve_activity:
                each.config(text='OFF')
                
    #Individual valve is run.
    def run_valve(self, index, interval):
        run_time = interval[0]
        delay_time = interval[1]

        start_time = math.floor( time.time() )
        
        valve_a_on = True
        delay_on = False
        
        try:

            self.valve_a_on(index)

            while( self.valve_activity[index].cget('text') == 'ON' ):
                
                time_lapse = math.floor( time.time() ) - start_time

                
                if delay_on:
                    if time_lapse > delay_time and not valve_a_on:
                        #Switch from delay to b
                        delay_on = False
                        start_time = math.floor( time.time())
                        self.valve_b_on(index)
                    elif time_lapse > delay_time and valve_a_on:
                        #switch from delay to a
                        delay_on = False
                        valve_a_on = True
                        start_time = math.floor( time.time())
                        self.valve_a_on(index)
                elif valve_a_on:
                    if time_lapse > run_time:
                        #Switching from a to delay
                        valve_a_on = False
                        delay_on = True
                        start_time = math.floor( time.time() )
                        self.valve_delay_all(index)        
                else:
                    if time_lapse > run_time:
                        #Switching from b to delay
                        valve_a_on = True
                        delay_on = True
                        start_time = math.floor( time.time() )
                        self.valve_delay_all(index)
                time.sleep(0.1)

        finally:
            self.valve_delay_all(index)

    #Turn on valve A, and turn off valve B.
    def valve_a_on(self, index):
        self.lightsA[index].set_state(True)
        self.lightsB[index].set_state(False)
        self.master.update()

    #Turn on valve B, and turn off valve A.
    def valve_b_on(self, index):
        self.lightsA[index].set_state(False)
        self.lightsB[index].set_state(True)
        self.master.update()

    #Turn off valves A and B.
    def valve_delay_all(self, index):
        self.lightsA[index].set_state(False)
        self.lightsB[index].set_state(False)
        self.master.update()
Beispiel #34
0
class Preferences(Frame):
    def __init__(self, master, valves):
        Frame.__init__(self, master, bg='sky blue', width=1366, height=768)
        self.master = master

        self.canvas = Canvas(self, height=640, width=1300, bg='sky blue')
        self.frame = Frame(self.canvas, bg='sky blue')
        self.frame.bind('<Button-1>', self.process_click_out)

        self.scrollbar = Scrollbar(self, orient='vertical', command=self.canvas.yview)
        self.scrollbar.configure(activebackground='DarkRed', background='red', width=40)
        self.canvas.configure(yscrollcommand=self.scrollbar.set, scrollregion=[0, 0, 1366, 2100])

        self.scrollbar.pack(side='right', fill='y')
        self.canvas.pack(side='left')
        self.canvas.create_window((0, 0), window=self.frame, anchor='nw')

        self.keyboard = Keyboard(self.master)

        self.valves = valves
        self.frame.config(bg='sky blue')
        
        index = 0
        while index < 25:
            self.frame.grid_rowconfigure(index, minsize=80)
            self.frame.grid_columnconfigure(index, minsize=150)
            index += 1

        num_label = [Label(self.frame, text='1'),
                     Label(self.frame, text='2'),
                     Label(self.frame, text='3'),
                     Label(self.frame, text='4'),
                     Label(self.frame, text='5'),
                     Label(self.frame, text='6'),
                     Label(self.frame, text='7'),
                     Label(self.frame, text='8'),
                     ]
        row = 1
        for each in num_label:
            each.grid(row=row, column=0)
            each.config(width=3, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 3

        text_label = [Label(self.frame, text='VALVE 1:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 2:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 3:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 4:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 5:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 6:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 7:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: '),

                     Label(self.frame, text='VALVE 8:  '),
                     Label(self.frame, text='ACTION A: '),
                     Label(self.frame, text='ACTION B: ')

                     ]
        row = 1
        for each in text_label:
            each.grid(row=row, column=1)
            each.config(width=12, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            row += 1

        self.valve_label = [Label(self.frame, textvariable=self.valves[0].get_name()),
                            Label(self.frame, textvariable=self.valves[1].get_name()),
                            Label(self.frame, textvariable=self.valves[2].get_name()),
                            Label(self.frame, textvariable=self.valves[3].get_name()),
                            Label(self.frame, textvariable=self.valves[4].get_name()),
                            Label(self.frame, textvariable=self.valves[5].get_name()),
                            Label(self.frame, textvariable=self.valves[6].get_name()),
                            Label(self.frame, textvariable=self.valves[7].get_name())]
        row = 1 
        for each in self.valve_label:
            each.grid(row=row, column=2)
            each.config(width=12, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4', anchor='w')
            each.bind('<Button-1>', self.process_click_out)
            row += 3

        self.entry_field = [Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),

                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),

                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text=''),
                            Entry(self.frame, text='')
                            ]
        row = 1
        for each in self.entry_field:
            each.grid(row=row, column=3)
            each.config(width=12, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4')
            each.bind('<Button-1>', self.process_click_in)
            row += 1

        self.action_a_label = [Label(self.frame, textvariable=self.valves[0].get_action_a()),
                               Label(self.frame, textvariable=self.valves[1].get_action_a()),
                               Label(self.frame, textvariable=self.valves[2].get_action_a()),
                               Label(self.frame, textvariable=self.valves[3].get_action_a()),
                               Label(self.frame, textvariable=self.valves[4].get_action_a()),
                               Label(self.frame, textvariable=self.valves[5].get_action_a()),
                               Label(self.frame, textvariable=self.valves[6].get_action_a()),
                               Label(self.frame, textvariable=self.valves[7].get_action_a())
                               ]
        row = 2
        for each in self.action_a_label:
            each.grid(row=row, column=2)
            each.config(width=12, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4', anchor='w')
            each.bind('<Button-1>', self.process_click_out)
            row += 3

        self.action_b_label = [Label(self.frame, textvariable=self.valves[0].get_action_b()),
                               Label(self.frame, textvariable=self.valves[1].get_action_b()),
                               Label(self.frame, textvariable=self.valves[2].get_action_b()),
                               Label(self.frame, textvariable=self.valves[3].get_action_b()),
                               Label(self.frame, textvariable=self.valves[4].get_action_b()),
                               Label(self.frame, textvariable=self.valves[5].get_action_b()),
                               Label(self.frame, textvariable=self.valves[6].get_action_b()),
                               Label(self.frame, textvariable=self.valves[7].get_action_b())
                               ]

        row = 3
        for each in self.action_b_label:
            each.grid(row=row, column=2)
            each.config(width=12, font=('Lucida Console', 30), bg='sky blue', fg='RoyalBlue4', anchor='w')
            each.bind('<Button-1>', self.process_click_out)
            row += 3

        self.lock()

    def process_click_out(self, event):
        self.canvas.configure(height=660)
        self.keyboard.grid_forget()

    def process_click_in(self, event):
        index = 0
        for each in self.entry_field:
            if each == event.widget:
                break
            index += 1

        if event.widget.cget('state') == 'normal':
            self.canvas.configure(height=250)
            self.keyboard.grid(row=2, column=0)
            self.keyboard.set_entry(event.widget)
            self.canvas.yview_moveto(index / 28)

    def lock(self):
        for each in self.entry_field:
            each.config(state='disabled')
Beispiel #35
0
class Main():
    def __init__(self, parent, CPU_object):

        # Set up the basic variables and the frame
        self.cpu        = CPU_object
        self.parent     = parent
        self.parent.title("Main")
        self.frame      = Frame(parent)
        self.frame.config(pady = 10)
        self.running    = True
        self.reg_list   = RegisterListener(self.update_regs)

        # Set up the label at the top
        self.label      = Label(self.frame, text = "Registers: ")
        self.label.grid(row = 0, columnspan = 2)

        # Set up the labels and text-boxes for the registers
        self.register_text  = []
        self.register_label = []

        # A loop for setting the registers text boxes and labels
        for x in range(11):

            # Use tricky-tricks to not have to write in the values for the labels
            label_text = REV_VALUES[x] + ": "

            if x > 7:
                label_text = REV_VALUES[x + 19] + ": "

            self.register_label.append(Label(self.frame, text = label_text))
            self.register_text.append(Entry(self.frame, width = 25))

            self.register_label[x].grid(row = x + 1, column = 0)
            self.register_text[x].grid(row = x + 1, column = 1)

        #Set up the buttons into the frame
        self.monitor_button = Button(self.frame, text = "Open monitor", width = 25, command = self.open_monitor)
        self.watcher_button = Button(self.frame, text = "Open watcher", width = 25, command = self.open_watcher)
        self.run_button     = Button(self.frame, text = "Run program", width = 25, command = self.run_program)
        self.step_button    = Button(self.frame, text = "Step program", width = 25, command = self.step_program)
        self.stop_button    = Button(self.frame, text = "Stop program", width = 25, command = self.stop_program)

        # Pack the buttons
        self.monitor_button.grid(row = 12, columnspan = 2)
        self.watcher_button.grid(row = 13, columnspan = 2)
        self.run_button.grid(row = 14, columnspan = 2)
        self.step_button.grid(row = 15, columnspan = 2)
        self.stop_button.grid(row = 16, columnspan = 2)

        # Pack the frame
        self.frame.pack()

        # Handle the closing event (unregister the event listener)
        self.parent.protocol("WM_DELETE_WINDOW", self.handle_close)

    def step_program(self):

        # Step through the program and update the registers
        self.cpu.step()
        time.sleep(0.1)

        # Disable the buttons for step/run 
        if len(self.cpu.text) == self.cpu.PC:
            self.step_button.config(state = DISABLED)
            self.run_button.config(state = DISABLED)

    def run(self):

        while(len(self.cpu.text) != self.cpu.PC and self.running):
            self.step_program()

    def stop_program(self):
        self.running = False

    def run_program(self):
        self.running = True
        t = threading.Thread(target=self.run)
        t.start()
       # self.run()

    def update_text(self, obj, text):

        # Update the text in an Entry object
        obj.delete(0, END)
        obj.insert(0, text)

    def update_regs(self, data):
        
        # Update the general registers
        for i, reg in enumerate(self.cpu.regs):
            self.update_text(self.register_text[i], hex(reg))

        # Update SP, PC, and O
        self.update_text(self.register_text[8], hex(self.cpu.SP))
        self.update_text(self.register_text[9], hex(self.cpu.PC))
        self.update_text(self.register_text[10], hex(self.cpu.O))

    def handle_close(self):
        self.reg_list.unregister()
        self.parent.quit()

    def open_watcher(self):
        self.watcher_window = Toplevel(self.parent)
        self.app = MemoryWatcher(self.watcher_window) 

    def open_monitor(self):
        # Open the monitor
        self.monitor_window = Toplevel(self.parent)
        self.app = Monitor(self.monitor_window)