Пример #1
0
    def __init__(self):
        """Interface build."""
        UI(
            None,
            title='MY GUI PLAYGROUND',
            banner='MY GUI PLAYGROUND',
            win_color='#003366',
            window_width=800,
            window_height=800,
        )

        # self.menu_button()
        # self.a_message()

        # self.panedWindow()
        # self.toplevel()

        # self.m_button()
        # self.my_notebook()

        # TradeProgressWin('CDEV')

        jd_cal = Calendar(UI.w)
        jd_cal.grid(row=1, column=0, sticky=W)

        mainloop()
Пример #2
0
    def create_widgets(self):
        self.selected_date = StringVar()
        cal = Calendar(self,
                       selectmode='day',
                       locale='en_US',
                       date_pattern="yyyy-mm-dd",
                       maxdate=datetime.date.today(),
                       disabledforeground='red',
                       textvariable=self.selected_date)
        cal.grid(column=0, row=0, columnspan=2, sticky='nesw')

        self.shift = StringVar()
        ttk.Radiobutton(self, text='day', variable=self.shift,
                        value='day').grid(column=0, row=2, sticky='e')
        ttk.Radiobutton(self, text='night', variable=self.shift,
                        value='night').grid(column=1, row=2, sticky='w')

        self.uid = StringVar()
        uid_entry = Entry(self, textvariable=self.uid)
        uid_entry.grid(column=1, row=3, sticky=(W, E))
        uid_entry.focus()

        self.pw = StringVar()
        Entry(self, textvariable=self.pw, show='*').grid(column=1,
                                                         row=4,
                                                         sticky=(W, E))

        ttk.Button(self, text='Submit', command=self.submit).grid(column=0,
                                                                  row=5,
                                                                  sticky='we')
        ttk.Button(self, text='Quit', command=self.stop).grid(column=1,
                                                              row=5,
                                                              sticky='we')
Пример #3
0
        def pop_up_cal():
            # make a window pop up with a calander, return to the sender the date picked
            win = tk.Toplevel()
            win.wm_title('Choose Calander')

            start_date_cal = Calendar(win)
            start_date_cal.grid()
Пример #4
0
    def newreminder():

        def newremind(message):
            with open("remind.txt","a+") as f:
                f.write(f"{message.get()} on {cal.selection_get()}\n")
                cal.see(datetime.date(year=2016, month=2, day=5))
            print(message.get(),cal.selection_get())
        newtop = Toplevel(root)
        msg=StringVar()
        import datetime
        today = datetime.date.today()
        mindate = datetime.date(year=2018, month=1, day=21)
        maxdate = today + datetime.timedelta(days=5)
        print(mindate, maxdate)

        cal = Calendar(newtop, font="Arial 14", selectmode='day', locale='en_US',
                       mindate=mindate, maxdate=maxdate, disabledforeground='red',
                       cursor="hand1", year=2018, month=2, day=5)
        cal.grid(row=1,column=0,columnspan=2)

        lable1=Label(newtop,text="Enter Your Message").grid(row=0,column=0)
        receivemessage=Entry(newtop,textvariable=msg,width=35).grid(row=0,column=1)
        

        submit=Button(newtop,text="Submit Reminder",command=lambda:newremind(msg)).grid(row=2,column=1)
  def datesInput():
    today = datetime.today()
    todayList = [int(today.strftime('%Y')), int(today.strftime('%m')), int(today.strftime('%d'))]

    # Checking if dates make sense
    def dateValidate():
      departDate = datetime.strptime(toCal.get_date(), '%m/%d/%y')
      returnDate = datetime.strptime(fromCal.get_date(), '%m/%d/%y')

      if departDate > returnDate:
        messagebox.showerror(title="Date Validation Error", message="The return date must be after the departure date.")
        calRoot.lift()
      elif (departDate < today) or (returnDate < today):
        messagebox.showerror(title="Date Validation Error", message="The selected dates cannot be in the past!")
        calRoot.lift()
      elif departDate <= returnDate:
        schedule.setSearchDate(departDate.date())
        schedule.setReturnDate(returnDate.date())
        calRoot.destroy()
      else:
        pass
    
    def onClose():
      calRoot.destroy()
      return False

    ## Window Creation
    calRoot = Tk()
    calRoot.title("Southwest Flight Schedules")
    calCalFrame = Frame(calRoot)
    calTitleFrame = Frame(calRoot)
    calButtonFrame = Frame(calRoot)
    gridConfigure(calRoot, [0,1,2], [0])

    ## Title
    calTitleFrame.grid(row=0,column=0,sticky='ew')
    gridConfigure(calTitleFrame, [0,1], [0,1])
    Label(calTitleFrame, text="Date Selection", font=('', 18, 'bold')).grid(row=0, column=0, pady=4, columnspan=2)
    Label(calTitleFrame, text="Departing").grid(row=1, column=0, padx=4, columnspan=1, sticky='ew')
    Label(calTitleFrame, text="Returning").grid(row=1, column=1, padx=4, columnspan=1, sticky='ew')

    ## Two Calendars
    calCalFrame.grid(row=1,column=0,sticky='ew')
    gridConfigure(calCalFrame, [0], [0,1])
    toCal = Calendar(calCalFrame, selectmode = 'day', year = todayList[0], month = todayList[1], day = todayList[2])
    toCal.grid(row=0, column=0, padx=4)
    fromCal = Calendar(calCalFrame, selectmode = 'day', year = todayList[0], month = todayList[1], day = todayList[2]+1)
    fromCal.grid(row=0, column=1, padx=4)

    ## Submit Button
    calButtonFrame.grid(row=2, column=0, sticky='ew')
    gridConfigure(calButtonFrame, [0], [0])
    Button(calButtonFrame, text="Submit", command=dateValidate).grid(row=2,column=0,pady=4, columnspan=1)

    calRoot.lift()
    calRoot.protocol("WM_WINDOW_DESTROY", onClose)
    calRoot.mainloop()
    del calRoot
    gc.collect()
Пример #6
0
class SpecificDateFrame(ttk.Frame):
    def __init__(self, parent):
        ttk.Frame.__init__(self, parent)
        self.configure(padding='3 3 3 3')
        # add widgets
        self.info = ttk.Label(self, text='Pick a date')
        self.full_calendar = Calendar(self,
                                          font="Arial 14", selectmode='day',
                                          cursor="hand2", year=int(datetime.datetime.now().year),
                                          month=int(datetime.datetime.now().month),
                                          day=int(datetime.datetime.now().day))

        # geometry
        self.info.grid(column=0, row=0, sticky='w')
        self.full_calendar.grid(column=0, row=1, sticky='n')
Пример #7
0
def pick_date_dialog():
    """Display date picker dialog, print date selected when OK clicked."""
    def print_sel():
        """Print date selected."""
        selected_date = (cal.get_date())
        print(selected_date)

    top = Toplevel(root)
    # Defaults to today's date.
    cal = Calendar(top,
                   font='Arial 10',
                   background='darkblue',
                   foreground='white',
                   selectmode='day')

    cal.grid()
    Button(top, text='OK', command=print_sel).grid()
        def fecha(self):
            def Pfecha(self, selected_date):
                self.selected_date = (cal.get_date())
                print(selected_date)

            top = tk.Toplevel()
            top.grab_set()

            #Calendario con Fecha actual
            cal = Calendar(top,
                           font="Arial 10",
                           background='darkblue',
                           foreground='white',
                           selectmode='day')

            cal.grid()
            ttk.Button(top, text="Hecho", command=Pfecha).grid()
Пример #9
0
        def dateSelector():
            def print_sel():
                global date_selected
                dateselected = cal.selection_get()
                date_selected = dateselected
                print(dateselected)
                labelstatus = ttk.Label(top,
                                        text="****Close this window.",
                                        width=20,
                                        font=("bold", 12)).grid(column=0)
                label_3 = ttk.Label(labelframe_2,
                                    text=dateselected,
                                    width=30,
                                    font=("bold", 10))
                label_3.grid(row=4, column=6, pady=4)
                top.destroy()
                # cal.see(datetime.date(year=2020, month=2, day=5))
                return dateselected

            top = Toplevel(expense)
            # top.geometry('500x500')
            import datetime
            today = datetime.date.today()

            mindate = datetime.date(year=2000, month=1, day=1)
            maxdate = today + datetime.timedelta(days=5)
            # print(mindate, maxdate)

            cal = Calendar(top,
                           font="Arial 14",
                           selectmode='day',
                           locale='en_US',
                           mindate=mindate,
                           maxdate=maxdate,
                           disabledforeground='red',
                           cursor="hand1",
                           year=2020,
                           month=5,
                           day=5)
            # cal.pack(fill="both", expand=True)
            cal.grid()
            expensebtn2 = ttk.Button(top, text="Select",
                                     command=print_sel).grid()
            print("Date_new:" + str(date_selected))
            return date_selected
Пример #10
0
def pick_date_dialog():
    '''Display GUI date picker dialog,
       print date selected when OK clicked'''
    def print_sel():
        selected_date = (cal.get_date())
        print(selected_date)

    top = tk.Toplevel(ROOT)

    # defaults to today's date
    cal = Calendar(top,
                   font="Arial 10",
                   background='darkblue',
                   foreground='white',
                   selectmode='day')

    cal.grid()
    ttk.Button(top, text="OK", command=print_sel).grid()
Пример #11
0
class Log(object):
    def __init__(self, root):
        self.root = root
        self.render()

    def view_log(self):
        date = str(self.cal.selection_get())
        self.msg.config(state='normal')
        self.msg.delete(0, tk.END)
        self.msg.insert(0, date)
        self.msg.config(state='disabled')
        
    def view_screenshot(self):
        pass
        
    def view_camera(self):
        pass

    def clear_selected_log(self):
        pass

    def clear_all_log(self):
        pass
        
    def render(self):
        self.msg = tk.Entry(self.root, justify='center')
        self.msg.config(state='disabled')
        self.msg.grid(row=1, column=1, columnspan=2, sticky='news')
        
        self.cal = Calendar(self.root, selectmode='day')
        self.cal.grid(row=2, column=1, rowspan=5, sticky='nesw')
        
        button_2 = tk.Button(self.root, text='View Keyboard Log', width=25, command=self.view_log)
        button_3 = tk.Button(self.root, text='View Screenshot Log', width=25, command=self.view_screenshot)
        button_4 = tk.Button(self.root, text='View Camera Log', width=25, command=self.view_camera)
        button_5 = tk.Button(self.root, text='Clear Log Selected Day', width=25, command=self.clear_selected_log)
        button_6 = tk.Button(self.root, text='Clear All Log', width=25, command=self.clear_all_log)
        button_2.grid(row=2, column=2, sticky='ns')
        button_3.grid(row=3, column=2, sticky='ns')
        button_4.grid(row=4, column=2, sticky='ns')
        button_5.grid(row=5, column=2, sticky='ns')
        button_6.grid(row=6, column=2, sticky='ns')
Пример #12
0
class Datetime:
    def __init__(self, master, label):
        self.master = master
        self.frame = tk.Frame(self.master)
        self.frame.config(bg="white")
        self.cal = Calendar(self.frame,
                            select="day",
                            year=2021,
                            month=2,
                            day=9)
        self.cal.grid(row=0, column=0, padx=20, pady=20)
        self.time = App(self.frame)
        self.time.grid(row=1, column=0, padx=10, pady=10)
        self.label = label

        # -----------Buttons-----------

        # Select datetime button
        self.pickDateButton = tk.Button(self.frame,
                                        text="Seleccionar fecha y hora",
                                        command=self.grab_date)
        self.pickDateButton.grid(row=2, column=0, pady=20, padx=20)

        # Exit button
        self.quitButton = tk.Button(self.frame,
                                    text='Salir',
                                    width=25,
                                    command=self.close_windows)
        self.quitButton.grid(row=3, column=0, padx=20, pady=20)

        self.frame.pack()

    # Prints chosed date into parent window (NewRecordDate)
    def grab_date(self):
        chosedDatetime = self.cal.get_date() + " " + self.time.hourstr.get(
        ) + ":" + self.time.minstr.get()
        self.label.config(text=chosedDatetime)

    # Destroys current window
    def close_windows(self):
        self.master.destroy()
Пример #13
0
    def show_cal2():
        toplevel1 = Toplevel()

        def print_sel():
            s2.set(cal.selection_get())
            toplevel1.destroy()

        today = str(date.today())
        l1 = today.split("-")
        year = l1[0]
        month = l1[1]
        day = l1[2]
        cal = Calendar(toplevel1,
                       font="Arial 14",
                       selectmode='day',
                       cursor="hand1",
                       year=int(year),
                       month=int(month),
                       day=int(day))
        cal.grid(row=0, column=0)
        s2.set(cal.selection_get())
        Button(toplevel1, text="Done", command=print_sel).grid(row=1, column=0)
Пример #14
0
class AUView(tk.Toplevel):
    def __init__(self, parent_view):
        super().__init__(parent_view)
        self.parent = parent_view
        self.title('AU/krank Eintragen')
        startdatum_label = tk.Label(self, text="von")
        self.startdatum_input = Calendar(self, date_pattern='MM/dd/yyyy')
        enddatum_label = tk.Label(self, text="bis")
        self.enddatum_input = Calendar(self, date_pattern='MM/dd/yyyy')

        self.save_button = tk.Button(self, text="Daten speichern")
        self.exit_button = tk.Button(self,
                                     text="Abbrechen",
                                     command=self.destroy)
        self.saveandnew_button = tk.Button(self,
                                           text="Daten speichern und neu")

        # ins Fenster packen
        startdatum_label.grid(row=1, column=0, sticky=tk.NW)
        self.startdatum_input.grid(row=1, column=1, columnspan=2, sticky=tk.NW)
        enddatum_label.grid(row=1, column=3, sticky=tk.NW)
        self.enddatum_input.grid(row=1, column=4, sticky=tk.NW)

        self.save_button.grid(row=15, column=0, sticky=tk.NW)
        self.exit_button.grid(row=15, column=1, sticky=tk.NW)
        self.saveandnew_button.grid(row=15, column=2, sticky=tk.NW)

    def set_data(self, **kwargs):
        self.startdatum_input.selection_set(kwargs['beginn'])
        self.enddatum_input.selection_set(kwargs['ende'])

    def get_data(self):
        startdatum_date_obj = datetime.strptime(
            self.startdatum_input.get_date(), '%m/%d/%Y')
        enddatum_date_obj = datetime.strptime(self.enddatum_input.get_date(),
                                              '%m/%d/%Y')

        return {'beginn': startdatum_date_obj, 'ende': enddatum_date_obj}
Пример #15
0
class CalendarView(View):
    def __init__(self, parent, controller):
        View.__init__(self, parent, controller)

        self.mindate = datetime.date.today() - datetime.timedelta(days=30)
        self.calendar = Calendar(self,
                                 font="Comic_Sans 14",
                                 selectmode='day',
                                 locale='en_US',
                                 mindate=self.mindate,
                                 disabledforeground='red',
                                 cursor="hand2")

        self.calendar.tag_config('Komunia',
                                 background='yellow',
                                 foreground='black')
        self.calendar.tag_config('Wesele',
                                 background='red',
                                 foreground='black')
        self.calendar.tag_config('Spotkanie biznesowe',
                                 background='blue',
                                 foreground='white')
        self.calendar.tag_config('Urodziny',
                                 background='black',
                                 foreground='yellow')

        self.button_frame = tk.Frame(self)
        self.buttons = []
        self.__build_grid()

        self.grid_columnconfigure(0, weight=1)

    def __build_grid(self):
        self.calendar.grid(column=0, row=0)
        self.button_frame.grid(column=0, row=1)

    def get_date(self):
        return self.calendar.selection_get()
class AddNewProjection(Tk):
    def __init__(self, userdetails={}):
        Tk.__init__(self)

        self.userdetails = userdetails

        self.listOfMovies = getAllMovie()
        self.listOfMoviesNames = []

        self.listOfAuditorium = getAllScreens()
        self.listOfAuditoriumIDS = []

        self.selectedStartDate = str(datetime.datetime.today().date())

        if self.listOfMovies == None:
            messagebox.showerror(
                'Error',
                "No Moive Exits ,Please add movie before adding projection")
            self.destroy()

        elif self.listOfAuditorium == None:
            messagebox.showerror(
                'Error',
                "No Auditorium Exits ,Please add Auditorium before adding projection"
            )
            self.destroy()
        else:
            for row in self.listOfMovies:
                self.listOfMoviesNames.append(row[1])

            for row in self.listOfAuditorium:
                self.listOfAuditoriumIDS.append(row[0])
            self.onCreate()

    def onCreate(self):
        HEIGHT = 800
        WIDTH = 800
        canvas = Canvas(self, height=HEIGHT, width=WIDTH)
        canvas.pack()
        frame = Frame(canvas, bg="grey")
        frame.place(relx=0.01, rely=0.01, relwidth=0.98, relheight=0.98)

        Label(frame, text="Add New Projection",
              font=("Helvetica", 12)).grid(row=0,
                                           columnspan=2,
                                           pady=15,
                                           padx=15)

        Label(frame, text="Select Movie: ").grid(row=1, pady=10)
        Label(frame, text="Select Auditorium/Screen: ").grid(row=2, pady=10)
        Label(frame, text="Select Date : ").grid(row=3, pady=10)
        Label(frame, text="Select Start Time: ").grid(row=4, pady=10)
        Label(frame, text="Select End Time: ").grid(row=5, pady=10)

        self.moviesChkbox = ttk.Combobox(master=frame)
        self.moviesChkbox['values'] = self.listOfMoviesNames
        self.moviesChkbox.grid(row=1, column=1, pady=10)

        self.auditoriumChkbox = ttk.Combobox(master=frame)
        self.auditoriumChkbox['values'] = self.listOfAuditoriumIDS
        self.auditoriumChkbox.grid(row=2, column=1, pady=10)

        self.date_picker = Calendar(master=frame,
                                    date_pattern='y-mm-dd',
                                    mindate=datetime.datetime.today())
        self.date_picker.bind('<<CalendarSelected>>', self.setStartDate)
        self.date_picker.grid(row=3, column=1, pady=10)

        self.startVariable = StringVar(master=frame, value="HH:MM:SS")
        self.endVariable = StringVar(master=frame, value="HH:MM:SS")

        self.startTime_entry = Entry(master=frame,
                                     textvariable=self.startVariable)
        self.endTime_entry = Entry(master=frame, textvariable=self.endVariable)

        self.startTime_entry.grid(row=4, column=1, pady=10)
        self.endTime_entry.grid(row=5, column=1, pady=10)

        Label(frame,
              text="24Hrs Format (%H:%M:%S) eg (16:30:00)").grid(row=4,
                                                                 column=2,
                                                                 pady=10)
        Label(frame,
              text="24Hrs Format (%H:%M:%S) eg(12:00:00)").grid(row=5,
                                                                column=2,
                                                                pady=10)

        submit_btn = Button(master=frame,
                            text=" Submit ",
                            command=self.onSubmitPressed)
        submit_btn.grid(row=6, column=0, columnspan=3, pady=10)

    def onSubmitPressed(self):
        if self.selectedStartDate == None or self.startVariable.get(
        ) == "HH:MM:SS" or self.endVariable.get() == "HH:MM:SS":
            messagebox.showerror(
                "Invalid Input",
                "All fields are mandatory plaese fill them correctly")

        else:
            startdatetime_str = str(self.selectedStartDate) + " " + str(
                self.startVariable.get())
            enddatetime_str = str(self.selectedStartDate) + " " + str(
                self.endVariable.get())

            try:
                startdatetime = datetime.datetime.strptime(
                    startdatetime_str, "%Y-%m-%d %H:%M:%S")
                enddatetime = datetime.datetime.strptime(
                    enddatetime_str, "%Y-%m-%d %H:%M:%S")
            except:
                messagebox.showerror("Invalid Time Input",
                                     "PLease enter times carefully")
                return
            movieID = self.listOfMovies[self.moviesChkbox.current()][0]
            auditorium_ID = self.listOfAuditoriumIDS[
                self.auditoriumChkbox.current()]
            available_seats = self.listOfAuditorium[
                self.auditoriumChkbox.current()][1]

            msg = AddNewProjectionToDB(movie_ID=movieID,
                                       auditorium_ID=auditorium_ID,
                                       startTime=startdatetime,
                                       endTime=enddatetime,
                                       available_seats=available_seats,
                                       total_seats=available_seats)
            if msg[0] == 0:
                messagebox.showinfo("Success", msg[1])
                self.destory()

            if msg[0] == 1:
                messagebox.showerror("Error", msg[1])

    def setStartDate(self, *args):
        self.selectedStartDate = self.date_picker.get_date()
        print(self.selectedStartDate)

    def start(self):
        self.mainloop()

    def destory(self):
        self.destroy()
class AssistentNewEditView(tk.Toplevel):
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent
        headline = tk.Label(self, text="Wer bist du denn eigentlich?")
        vorname_label = tk.Label(self, text="Vorname")
        self.vorname_input = tk.Entry(self, bd=5, width=40)
        name_label = tk.Label(self, text="Nachname")
        self.name_input = tk.Entry(self, bd=5, width=40)
        email_label = tk.Label(self, text="Email")
        self.email_input = tk.Entry(self, bd=5, width=40)
        strasse_label = tk.Label(self, text="Straße/Hausnummer")
        self.strasse_input = tk.Entry(self, bd=5, width=29)
        self.hausnummer_input = tk.Entry(self, bd=5, width=9)
        plz_label = tk.Label(self, text="Postleitzahl")
        self.plz_input = tk.Entry(self, bd=5, width=40)
        stadt_label = tk.Label(self, text="Stadt")
        self.stadt_input = tk.Entry(self, bd=5, width=40)
        einstellungsdatum_label = tk.Label(
            self, text="Seit wann bei ad? (tt.mm.JJJJ)")
        self.einstellungsdatum_input = Calendar(self)
        self.save_button = tk.Button(self, text="Daten speichern")
        self.exit_button = tk.Button(self,
                                     text="Abbrechen",
                                     command=self.destroy)

        # ins Fenster packen
        headline.grid(row=0, column=0, columnspan=3)
        vorname_label.grid(row=1, column=0)
        self.vorname_input.grid(row=1, column=1, columnspan=2)
        name_label.grid(row=2, column=0)
        self.name_input.grid(row=2, column=1, columnspan=2)
        email_label.grid(row=3, column=0)
        self.email_input.grid(row=3, column=1, columnspan=2)
        strasse_label.grid(row=4, column=0)
        self.strasse_input.grid(row=4, column=1)
        self.hausnummer_input.grid(row=4, column=2)
        plz_label.grid(row=5, column=0)
        self.plz_input.grid(row=5, column=1, columnspan=2)
        stadt_label.grid(row=6, column=0)
        self.stadt_input.grid(row=6, column=1, columnspan=2)
        einstellungsdatum_label.grid(row=7, column=0, sticky="nw")
        self.einstellungsdatum_input.grid(row=7, column=1)

        self.exit_button.grid(row=8, column=0)
        self.save_button.grid(row=8, column=1)

    def set_data(self, **kwargs):
        self.vorname_input.insert(0, kwargs['vorname'])
        self.name_input.insert(0, kwargs['name'])
        self.email_input.insert(0, kwargs['email'])
        self.strasse_input.insert(0, kwargs['strasse'])
        self.hausnummer_input.insert(0, kwargs['hausnummer'])
        self.plz_input.insert(0, kwargs['plz'])
        self.stadt_input.insert(0, kwargs['stadt'])
        self.einstellungsdatum_input.selection_set(kwargs['einstellungsdatum'])

    def get_data(self):
        einstellungsdatum_date_obj = datetime.strptime(
            self.einstellungsdatum_input.get_date(), '%m/%d/%y')

        return {
            'name': self.name_input.get(),
            'vorname': self.vorname_input.get(),
            'email': self.email_input.get(),
            'einstellungsdatum': einstellungsdatum_date_obj,
            'strasse': self.strasse_input.get(),
            'hausnummer': self.hausnummer_input.get(),
            'plz': self.plz_input.get(),
            'stadt': self.stadt_input.get()
        }
Пример #18
0
tk.Button(tab2,text="Remove",command=RemoveTruck,fg="black",bg="green").grid(row=1,column=0,padx=(10,0),pady=(10,0))


tk.Label(tab3,text="Select Truck No : ",font=("Arial",11)).grid(row=0, column=0, pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S)
tk.OptionMenu(tab3,selectedTruck,*trucklist).grid(row=0, column=1,pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)
tk.Label(tab3,text="Total Amount: ",font=("Arial",11)).grid(row=1, column=0,sticky=tk.W+tk.E+tk.N+tk.S)
tk.Entry(tab3,textvariable=totalamt).grid(row=1, column=1,sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)
tk.Label(tab3,text="Advance Amount: ",font=("Arial",11)).grid(row=2, column=0,sticky=tk.W+tk.E+tk.N+tk.S)
tk.Entry(tab3,textvariable=advamt).grid(row=2, column=1,sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)
tk.Label(tab3,text="Select Party: ",font=("Arial",11)).grid(row=3, column=0,sticky=tk.W+tk.E+tk.N+tk.S)
tk.OptionMenu(tab3,selectedParty,*partylist).grid(row=3, column=1,sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)
tk.Label(tab3,text="Select Payment Accounts: ",font=("Arial",11)).grid(row=4, column=0,sticky=tk.W+tk.E+tk.N+tk.S)
tk.OptionMenu(tab3,selectedAcct,*Acct).grid(row=4, column=1,sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)
tk.Label(tab3,text="Select Date : ",font=("Arial",11)).grid(row=5, column=0,sticky=tk.W+tk.E+tk.N+tk.S)
cal=Calendar(tab3,selectmode='day')
cal.grid(row=5,column=1,sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)

#tk.Button(tab3,text="Submit",command=RemoveTruck,fg="black",bg="green").grid(row=6,column=1,padx=(10,0),pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S)
tk.Label(tab3,text="Expenditure : ",font=("Arial",11)).grid(row=6, column=0,sticky=tk.W+tk.E+tk.N+tk.S)
tk.Button(tab3,text="Add",command=AddExpend).grid(row=6,column=1,sticky=tk.W+tk.E+tk.N+tk.S)
tk.Button(tab3,text="Done",command=DoneAdding).grid(row=6,column=2,sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)

tk.Label(tab5,text="Select UID. : ",font=("Arial",11)).grid(row=0, column=0, pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S)
tk.OptionMenu(tab5,selectedUID,*UID).grid(row=0, column=1,pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S,columnspan=3)
tk.Button(tab5,text="Remove",command=RemoveTrip,fg="black",bg="green").grid(row=2,column=1,padx=(10,0),pady=(10,0))

tk.Label(tab4,text="Select UID : ",font=("Arial",11)).grid(row=0, column=0, pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S)
tk.OptionMenu(tab4,selectedUID,*UID).grid(row=0, column=1,pady=(10,0),sticky=tk.W+tk.E+tk.N+tk.S)
tk.Button(tab4,text="Submit",command=ShowUID,fg="black",bg="green").grid(row=1,column=0,padx=(10,0),pady=(10,0))

tk.Label(tab10,text="Enter Expentiture Type : ",font=("Arial",11)).grid(row=0, column=0, pady=(10,0))
Пример #19
0
class ChangeStatement:
    """ Изменить состояние канала """
    def __init__(self, tree, iid, num, all_trees, logit):
        self.tree = tree
        self.iid = iid
        self.num = num
        self.all_trees = all_trees
        self.logit = logit
        self.row = self.tree.item(iid)
        self.key_tree = self.row['values'][0]
        self.all_values = all_values
        self.name = self.all_values[self.num][0][self.key_tree]
        self.add_in_table = all_values[self.num][1]

    def on_time(self):
        """ Выбрать время """

        self.top = tk.Toplevel()
        self.top.wm_title(self.name)
        lab1 = tk.Label(self.top,
                        text='Дата и время начала работ',
                        font=tkFont.Font(family=main_font, size=size_font))
        lab1.grid(row=0, column=0, columnspan=4, ipady=10, padx=10)
        self.cal1 = Calendar(self.top,
                             font="Arial 14",
                             selectmode="day",
                             year=datetime.datetime.today().year,
                             month=datetime.datetime.today().month,
                             day=datetime.datetime.today().day)
        self.cal1.grid(row=1, column=0, columnspan=4, rowspan=4, padx=10)
        self.time1 = AppTime(self.top)
        self.time1.grid(row=5, column=0, columnspan=4, pady=10)
        lab2 = tk.Label(self.top,
                        text='Дата и время завершения работ',
                        font=tkFont.Font(family=main_font, size=size_font))
        lab2.grid(row=0, column=5, columnspan=4, ipady=10)
        self.cal2 = Calendar(self.top,
                             font="Arial 14",
                             selectmode="day",
                             year=datetime.datetime.today().year,
                             month=datetime.datetime.today().month,
                             day=datetime.datetime.today().day)
        self.cal2.grid(row=1, column=5, columnspan=4, rowspan=4, padx=10)
        self.time2 = AppTime(self.top)
        self.time2.grid(row=5, column=5, columnspan=4, pady=10)

        self.day1 = self.cal1.get_date()
        self.day2 = self.cal2.get_date()
        self.hour1 = self.time1.hourstr.get()
        self.hour2 = self.time2.hourstr.get()
        self.min1 = self.time1.minstr.get()
        self.min2 = self.time2.minstr.get()
        text4 = tk.Label(self.top,
                         text='Добавьте комментарий:',
                         font=tkFont.Font(family=main_font, size=size_font))
        text4.grid(row=6, column=0, columnspan=5, padx=10)
        self.comment_text = ScrolledText.ScrolledText(self.top,
                                                      height=4,
                                                      width=40,
                                                      font=tkFont.Font(
                                                          family=main_font,
                                                          size=size_font),
                                                      wrap=WORD)
        self.comment_text.grid(row=7, column=0, columnspan=5, padx=10, pady=10)
        but1 = tk.Button(self.top,
                         text="Выбрать",
                         command=self.select_on_time,
                         activebackground='PaleGreen1',
                         font=tkFont.Font(family=main_font, size=size_font),
                         height=2,
                         width=10)
        but1.grid(row=7, column=6)
        but2 = tk.Button(self.top,
                         text="Отмена",
                         command=self.top.destroy,
                         activebackground='salmon',
                         font=tkFont.Font(family=main_font, size=size_font),
                         height=2,
                         width=10)
        but2.grid(row=7, column=7)
        self.top.resizable(height=False, width=False)

    def select_on_time(self):
        """ Отправить по времени"""

        date_order = [2, 0, 1]
        date_list1 = self.day1.split('/')
        date_list2 = self.day2.split('/')
        date_list1 = ['0' + i if len(i) == 1 else i for i in date_list1]
        date_list2 = ['0' + i if len(i) == 1 else i for i in date_list2]
        date_list1 = [date_list1[i] for i in date_order]
        date_list2 = [date_list2[i] for i in date_order]
        date_list1[0] = '20' + date_list1[0]
        date_list2[0] = '20' + date_list2[0]
        date1 = '-'.join(date_list1)
        date2 = '-'.join(date_list2)
        begin = date1 + ' ' + str(self.hour1) + ':' + str(self.min1)
        end = date2 + ' ' + str(self.hour2) + ':' + str(self.min2)
        new_value = {
            self.key_tree:
            [self.name, begin.encode('utf-8'),
             end.encode('utf-8')]
        }
        par1 = "Ремонт с".decode('koi8-r').encode('koi8-r')
        par2 = "до".decode('koi8-r').encode('koi8-r')
        for item in self.all_values.keys():
            for all_dict in self.all_values[item][0]:
                if self.name == self.all_values[item][0][all_dict]:
                    if item in list_moxa:
                        tree = self.all_trees[item]
                        remont = load_file('remont', item)
                        remont.update(new_value)
                        dump_file('remont', item, remont)
                        tree_num = self.key_tree - 1
                        row = tree.tree.get_children()[tree_num]
                        tree.tree.item(
                            row,
                            values=(str(self.key_tree),
                                    str(new_value[self.key_tree][0]),
                                    "%s %s %s %s" %
                                    (par1, new_value[self.key_tree][1], par2,
                                     new_value[self.key_tree][2])),
                            tags=("blue", ))
                        self.logit.warning(
                            'Канал %s в MOXA%s  отправлен на ремонт на период с %s до %s'
                            % (new_value[self.key_tree][0], self.num,
                               begin.encode('utf-8'), end.encode('utf-8')))
                        lst = [
                            self.key_tree,
                            str(new_value[self.key_tree][0]),
                            "%s %s %s %s" %
                            (par1, new_value[self.key_tree][1], par2,
                             new_value[self.key_tree][2]), "blue"
                        ]
                        new_value_add = {self.key_tree: lst}
                        self.add_in_table.update(new_value_add)
                        add_comment(self.comment_text.get('1.0', END), item,
                                    self.key_tree, self.name)
        self.top.destroy()

    def on_agreement(self):
        """ Отправить в ремонт до распоряжения"""

        date_today = datetime.datetime.now()
        begin = date_today.strftime("%Y-%m-%d %H:%M")
        end = 'распоряжения'.decode('koi8-r').encode('koi8-r')
        new_value = {self.key_tree: [self.name, begin.encode('utf-8'), end]}
        par1 = "Ремонт с".decode('koi8-r').encode('koi8-r')
        par2 = "до".decode('koi8-r').encode('koi8-r')
        for item in self.all_values.keys():
            for all_dict in self.all_values[item][0]:
                if self.name == self.all_values[item][0][
                        all_dict] and item in list_moxa:
                    tree = self.all_trees[item]
                    remont = load_file('remont', item)
                    remont.update(new_value)
                    dump_file('remont', item, remont)
                    tree_num = self.key_tree - 1
                    row = tree.tree.get_children()[tree_num]
                    tree.tree.item(
                        row,
                        values=(str(self.key_tree),
                                str(new_value[self.key_tree][0]),
                                "%s %s %s %s" %
                                (par1, new_value[self.key_tree][1], par2,
                                 new_value[self.key_tree][2])),
                        tags=("blue", ))
                    self.logit.warning(
                        'Канал %s в MOXA%s  отправлен на ремонт на период с %s до %s'
                        % (new_value[self.key_tree][0], item, begin, end))
                    lst = [
                        self.key_tree,
                        str(new_value[self.key_tree][0]),
                        "%s %s %s %s" % (par1, new_value[self.key_tree][1],
                                         par2, new_value[self.key_tree][2]),
                        "blue"
                    ]
                    new_value_add = {self.key_tree: lst}
                    self.add_in_table.update(new_value_add)

    def return_channel(self):
        """ Вернуть канал в работу"""

        for item in self.all_values.keys():
            for all_dict in self.all_values[item][0]:
                if self.name == self.all_values[item][0][all_dict]:
                    if item in list_moxa:
                        tree = self.all_trees[item]
                        remont = load_file('remont', item)
                        for key in remont.keys():
                            if key == self.key_tree:
                                del (remont[key])
                                dump_file('remont', item, remont)
                                tree_num = self.key_tree - 1
                                row = tree.tree.get_children()[tree_num]
                                moxa = self.all_values[item][0]
                                tree.tree.item(
                                    row,
                                    values=(str(self.key_tree),
                                            str(moxa[self.key_tree]),
                                            str('updating status...')),
                                    tags=("green", ))
                                self.logit.warning(
                                    'Канал %s в MOXA%s возвращен в работу' %
                                    (moxa[self.key_tree], item))
                                lst = [
                                    self.key_tree,
                                    str(moxa[self.key_tree]),
                                    'updating status...', "green"
                                ]
                                new_value_add = {self.key_tree: lst}
                                self.add_in_table.update(new_value_add)
Пример #20
0
class MainWindowClass(HeaderBarSetupClass):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.openWindow()

        self.title("Main window")
        self.geometry("750x650")
        self.overrideredirect(True)
        self.configure(background=sc.mainBackgroundDarkerM)

        for x in range(8):
            self.grid_columnconfigure(x, weight=1, minsize=60, uniform="fred")
        for y in range(14):
            self.grid_rowconfigure(y, weight=1, minsize=45, uniform="fred")
        #                                     #
        ############ Nav Config ###############
        #                                     #

        self.grip = self.clone(self.myLabelTitle)
        self.grip['text'] = "Main window"
        self.grip.grid(column=0, row=0, columnspan=8, sticky=W + E + S + N)

        self.grip.bind("<ButtonPress-1>", self.start_move)
        self.grip.bind("<ButtonRelease-1>", self.stop_move)
        self.grip.bind("<B1-Motion>", self.do_move)
        self.grip.bind("<Map>", self.frame_mapped)

        self.exit = tk.Button(self,
                              text="  X  ",
                              borderwidth=0,
                              background=sc.mainBackgroundDarker,
                              foreground=sc.mainTextColor,
                              command=lambda: self.closeWindow())
        self.exit.grid(column=7, row=0, sticky=E + N)
        self.minimalize = tk.Button(self,
                                    text="  - ",
                                    borderwidth=0,
                                    background=sc.mainBackgroundDarker,
                                    foreground=sc.mainTextColor,
                                    command=lambda: self.minimalizeApp())
        self.minimalize.grid(column=7, row=0, sticky=N)

        #                                     #
        ############ Rest of Ui ###############
        #                                     #
        self.dateVar = tk.StringVar()
        self.calendar = Calendar(self,
                                 font=sc.fontNormal,
                                 style='my.DateEntry',
                                 bordercolor=sc.mainBorderLighter,
                                 headersbackground=sc.mainBackgroundDarkerM,
                                 headersforeground=sc.mainTextColor,
                                 foreground=sc.mainTextColor,
                                 background=sc.mainBackgroundDarker,
                                 normalbackground=sc.mainBackgroundDarker,
                                 normalforeground=sc.mainTextColor,
                                 weekendbackground=sc.mainBackgroundDarker,
                                 weekendforeground=sc.mainTextColor,
                                 othermonthbackground=sc.mainBackground,
                                 othermonthforeground=sc.mainTextColor,
                                 othermonthwebackground=sc.mainBackground,
                                 othermonthweforeground=sc.mainTextColor)

        self.calendar.grid(column=0,
                           row=1,
                           rowspan=10,
                           columnspan=8,
                           sticky=N + S + W + E)
        self.calendar['date_pattern'] = 'y-mm-dd'
        self.calendar['textvariable'] = self.dateVar

        # Navigation Buttons

        self.addEventB = tk.Button(self,
                                   text="Add Event Window",
                                   borderwidth=0,
                                   font=sc.fontNormal,
                                   background=sc.mainBackgroundDarker,
                                   foreground=sc.mainTextColor,
                                   command=lambda: self.openAddEventWindow())
        self.addEventB.grid(column=0,
                            columnspan=2,
                            row=11,
                            rowspan=2,
                            sticky=N + S + W + E)

        self.searchB = tk.Button(self,
                                 text="Search Event Window",
                                 borderwidth=0,
                                 font=sc.fontNormal,
                                 background=sc.mainBackgroundDarker,
                                 foreground=sc.mainTextColor,
                                 command=lambda: self.openSearchWindow())
        self.searchB.grid(column=3,
                          columnspan=2,
                          row=11,
                          rowspan=2,
                          sticky=N + S + W + E)

        self.dayWindowB = tk.Button(self,
                                    text="Day Window",
                                    borderwidth=0,
                                    font=sc.fontNormal,
                                    background=sc.mainBackgroundDarker,
                                    foreground=sc.mainTextColor,
                                    command=lambda: self.goToDay())
        self.dayWindowB.grid(column=6,
                             columnspan=2,
                             row=11,
                             rowspan=2,
                             sticky=N + S + W + E)

        # Bottom label

        self.footer = self.clone(self.myLabel)
        self.footer['text'] = 'Time organizer by Adam Sierakowski'
        self.footer['foreground'] = sc.mainTextColorDarker
        self.footer.grid(column=0, row=13, columnspan=8, sticky=N + S + W + E)

    def goToDay(self):
        chosenDate = self.dateVar.get()
        if (chosenDate != ''):
            dateToGet = date.fromisoformat(chosenDate)
            self.openDayWindow(dateToGet)
        x = 1
Пример #21
0
checkbtn_var = tk.IntVar()
checkbtn = ttk.Checkbutton(
    tab1,
    text="Select if the customer wants to be followed up: ",
    var=checkbtn_var)
checkbtn.grid(row=12, columnspan=4, sticky=tk.W)

##Date button for follow up
cal = Calendar(
    tab1,
    selectmode='none',
    day=20,
    month=2,
    year=2022,
)
cal.grid(row=15, column=0, pady=20)


def Calenderbutton():
    date_btn_var = cal.get_date()
    date_btn_var


date_btn_var = tk.StringVar()
date_btn = ttk.Button(tab1,
                      width=23,
                      text='Select Date for follow up',
                      command=Calenderbutton())
date_btn.grid(row=14, column=0, sticky=tk.W)
# END of Details
Пример #22
0
from tkinter import *
from tkcalendar import Calendar
import sqlite3
import datetime
now = datetime.datetime.now().strftime("%I:%M:%S %p")
# Create Object
root = Tk()

# Set geometry
root.geometry("500x400")
root.title("Event Scheduler")

# Add Calender
cal = Calendar(root, selectmode='day', year=2020, month=5, day=22)

cal.grid(column=1)


#set the date
def grad_date():
    global c
    #time monitoring
    now = datetime.datetime.now().strftime("%I:%M:%S %p")
    #time declaration
    declared_time = datetime.datetime.now().strftime("%I:%M %p")
    #logic key time in seconds
    time_condition = datetime.datetime.now().strftime("%S")

    date.config(text="Selected Date is: " + cal.get_date())
    conn = sqlite3.connect('ES.db')
    c = conn.cursor()
Пример #23
0
class SchichtView(tk.Toplevel):
    def __init__(self, parent_view, asn_liste, adressliste):
        super().__init__(parent_view)

        # unterframes zur optisch-logischen Einteilung
        self.asn_frame = tk.Frame(self)
        self.datetime_frame = tk.Frame(self)
        self.template_frame = tk.Frame(self.asn_frame)
        self.add_options_frame = tk.Frame(self)
        self.add_options_checkbuttons_frame = tk.Frame(self.add_options_frame)
        self.save_buttons_frame = tk.Frame(self)

        self.asn_dropdown = Combobox(self.asn_frame,
                                     values=asn_liste,
                                     width=38,
                                     state="readonly")
        self.asn_dropdown.set(-1)
        self.selected_template = tk.IntVar()

        self.asn_stammdaten_form = AsnStammdatenView(
            parent_view=self.asn_frame)

        self.startdatum_input = Calendar(self.datetime_frame,
                                         date_pattern='MM/dd/yyyy')
        # day=day,
        # month=month,
        # year=year)
        self.startzeit_input = TimePicker(self.datetime_frame)
        self.endzeit_input = TimePicker(self.datetime_frame)
        self.startzeit_input.bind('<FocusOut>',
                                  self.nachtschicht_durch_uhrzeit)
        self.endzeit_input.bind('<FocusOut>', self.nachtschicht_durch_uhrzeit)

        self.enddatum_input = Calendar(self.datetime_frame,
                                       date_pattern='MM/dd/yyyy')
        # , day=day, month=month, year=year)

        self.abweichende_adresse_beginn = PostadresseView(
            self.add_options_frame)
        self.abweichende_adresse_ende = PostadresseView(self.add_options_frame)

        self.abweichende_adresse_beginn_dropdown = Combobox(
            self.add_options_frame,
            values=adressliste,
            width=38,
            state="readonly")
        self.abweichende_adresse_beginn_dropdown.set(-2)

        self.abweichende_adresse_ende_dropdown = Combobox(
            self.add_options_frame,
            values=adressliste,
            width=38,
            state="readonly")
        self.abweichende_adresse_ende_dropdown.set(-2)

        self.ist_at = tk.IntVar()
        self.ist_pcg = tk.IntVar()
        self.ist_rb = tk.IntVar()
        self.ist_afg = tk.IntVar()
        self.ist_at_button = tk.Checkbutton(
            self.add_options_checkbuttons_frame,
            text="AT",
            onvalue=1,
            offvalue=0,
            variable=self.ist_at)
        self.ist_pcg_button = tk.Checkbutton(
            self.add_options_checkbuttons_frame,
            text="PCG",
            onvalue=1,
            offvalue=0,
            variable=self.ist_pcg)
        self.ist_rb_button = tk.Checkbutton(
            self.add_options_checkbuttons_frame,
            text="Kurzfristig (RB/BSD)",
            onvalue=1,
            offvalue=0,
            variable=self.ist_rb)
        self.ist_afg_button = tk.Checkbutton(
            self.add_options_checkbuttons_frame,
            text="Ausfallgeld",
            onvalue=1,
            offvalue=0,
            variable=self.ist_afg)

        # formbuttons
        self.save_button = tk.Button(self.save_buttons_frame,
                                     text="Daten speichern")
        self.exit_button = tk.Button(self.save_buttons_frame, text="Abbrechen")
        # command=self.destroy)
        self.saveandnew_button = tk.Button(self.save_buttons_frame,
                                           text="Daten speichern und neu")
        # command=lambda: self.action_save_neue_schicht(undneu=1))

    def draw_templates(self, template_list):
        for child in self.template_frame.winfo_children():
            child.destroy()

        if not template_list:
            self.add_template_text()
        else:
            for template in template_list:
                text = template.bezeichner
                text += " von " + template.beginn.strftime('%H:%M') \
                        + " bis " + template.ende.strftime('%H:%M')
                button = tk.Radiobutton(
                    self.template_frame,
                    text=text,
                    variable=self.selected_template,
                    value=template.id,
                    command=lambda: self.change_template(template_list))
                button.pack()

    def nachtschicht_durch_uhrzeit(self, event=None):
        start = time(hour=int(self.startzeit_input.hourstr.get()),
                     minute=int(self.startzeit_input.minstr.get()))
        ende = time(hour=int(self.endzeit_input.hourstr.get()),
                    minute=int(self.endzeit_input.minstr.get()))

        beginn = self.startdatum_input.selection_get()

        if ende < start:
            enddatum = beginn + timedelta(days=1)
        else:
            enddatum = beginn

        self.enddatum_input.selection_set(enddatum)

    def change_template(self, template_list):
        template_id = self.selected_template.get()
        for template in template_list:
            if template_id == template.id:
                self.startzeit_input.hourstr.set(
                    template.beginn.strftime('%H'))
                self.startzeit_input.minstr.set(template.beginn.strftime('%M'))
                self.endzeit_input.hourstr.set(template.ende.strftime('%H'))
                self.endzeit_input.minstr.set(template.ende.strftime('%M'))
                self.nachtschicht_durch_uhrzeit()
                break

    def draw(self):

        # positionierung der Unterframes
        self.asn_frame.grid(row=0, column=0, sticky=tk.NW)
        self.datetime_frame.grid(row=0, column=1, sticky=tk.NW)
        self.template_frame.grid(row=1, column=0, sticky=tk.NW, columnspan=4)
        self.add_options_frame.grid(row=2,
                                    column=0,
                                    columnspan=2,
                                    sticky=tk.NW)
        self.add_options_checkbuttons_frame.grid(row=3,
                                                 column=0,
                                                 columnspan=2,
                                                 sticky=tk.NW)
        self.save_buttons_frame.grid(row=3,
                                     column=0,
                                     columnspan=2,
                                     sticky=tk.NE)

        # asn-frame
        asn_label = tk.Label(self.asn_frame, text='ASN auswählen')
        asn_label.grid(row=0, column=0, sticky=tk.NW)
        self.asn_dropdown.grid(row=0, column=1, sticky=tk.NE)
        self.asn_stammdaten_form.grid(row=1,
                                      column=0,
                                      columnspan=2,
                                      sticky=tk.NW)

        # datetime-frame
        startdatum_label = tk.Label(self.datetime_frame, text='Beginn')
        startdatum_label.grid(row=0, column=0, sticky=tk.NW)
        self.startdatum_input.grid(row=1, column=0, sticky=tk.NW, columnspan=2)
        self.startzeit_input.grid(row=0, column=1, sticky=tk.NW)

        enddatum_label = tk.Label(self.datetime_frame, text='Ende')
        enddatum_label.grid(row=0, column=2, sticky=tk.NW)
        self.enddatum_input.grid(row=1, column=2, sticky=tk.NW, columnspan=2)
        self.endzeit_input.grid(row=0, column=3, sticky=tk.NW)

        # add-options-frame
        abweichende_adresse_beginn_label = tk.Label(
            self.add_options_frame, text="Adresse zu beginn der Schicht?")
        abweichende_adresse_ende_label = tk.Label(
            self.add_options_frame, text="Adresse zum Ende der Schicht?")
        abweichende_adresse_beginn_label.grid(row=0, column=0, sticky=tk.NW)
        self.abweichende_adresse_beginn_dropdown.grid(row=1,
                                                      column=0,
                                                      sticky=tk.NE)
        self.abweichende_adresse_beginn.grid(row=2, column=0, sticky=tk.NW)
        abweichende_adresse_ende_label.grid(row=0, column=1, sticky=tk.NW)
        self.abweichende_adresse_ende_dropdown.grid(row=1,
                                                    column=1,
                                                    sticky=tk.NE)
        self.abweichende_adresse_ende.grid(row=2, column=1, sticky=tk.NW)

        self.ist_at_button.grid(row=0, column=0, sticky=tk.NW)
        self.ist_pcg_button.grid(row=0, column=1, sticky=tk.NW)
        self.ist_rb_button.grid(row=0, column=2, sticky=tk.NW)
        self.ist_afg_button.grid(row=0, column=3, sticky=tk.NW)

        # save-button-frame
        self.save_button.grid(row=0, column=0)
        self.exit_button.grid(row=0, column=1)
        self.saveandnew_button.grid(row=0, column=2)

    @staticmethod
    def hide(frame: tk.Frame):
        frame.grid_remove()

    @staticmethod
    def show(frame: tk.Frame):
        frame.grid()

    def add_template_text(self):
        # template-frame
        template_text = tk.Label(
            self.template_frame,
            justify="left",
            text='Wenn der Assistent "Schicht-Vorlagen" hat,\n'
            'stehen diese hier zur Auswahl.\n\n'
            'Das ist absolut anzuraten, da es das Eintragen\n'
            'von Schichten deutlich beschleunigt. \n\n'
            'Die Möglichkeit dazu findest Du im Hauptfenster unter: \n'
            'Bearbeiten -> ASN bearbeiten')
        template_text.pack()

    def set_data(self, **kwargs):
        """
        parst alle daten ins Formular

        :param kwargs:
        :return:
        """
        if 'asn' in kwargs.keys():
            self.asn_dropdown.set(kwargs['asn'])
        if 'asn_stammdaten' in kwargs.keys():
            self.asn_stammdaten_form.set_data(**kwargs['asn_stammdaten'])
        if 'beginn' in kwargs.keys():
            self.startdatum_input.selection_set(date=kwargs['beginn'])
            self.startzeit_input.hourstr.set(kwargs['beginn'].strftime('%H'))
            self.startzeit_input.minstr.set(kwargs['beginn'].strftime('%M'))
        if 'ende' in kwargs.keys():
            self.enddatum_input.selection_set(date=kwargs['ende'])
            self.endzeit_input.hourstr.set(kwargs['ende'].strftime('%H'))
            self.endzeit_input.minstr.set(kwargs['ende'].strftime('%M'))

        self.ist_at.set(
            1 if 'ist_at' in kwargs.keys() and kwargs['ist_at'] else 0)
        self.ist_pcg.set(
            1 if 'ist_pcg' in kwargs.keys() and kwargs['ist_pcg'] else 0)
        self.ist_rb.set(
            1 if 'ist_rb' in kwargs.keys() and kwargs['ist_rb'] else 0)
        self.ist_afg.set(
            1 if 'ist_afg' in kwargs.keys() and kwargs['ist_afg'] else 0)

        # TODO Zurücksetzen bei Change ASN
        if 'abweichende_adresse_beginn' in kwargs.keys():
            if kwargs['abweichende_adresse_beginn']:
                self.abweichende_adresse_beginn_dropdown.set(
                    kwargs['abweichende_adresse_beginn'])

        if 'abweichende_adresse_ende' in kwargs.keys():
            if kwargs['abweichende_adresse_ende']:
                self.abweichende_adresse_ende_dropdown.set(
                    kwargs['abweichende_adresse_ende'])

    def get_data(self):

        return {
            'asn_id':
            self.asn_dropdown.get(),
            'asn_stammdaten':
            self.asn_stammdaten_form.get_data(),
            'startdatum':
            self.startdatum_input.get_date(),
            'startzeit_stunde':
            self.startzeit_input.hourstr.get(),
            'startzeit_minute':
            self.startzeit_input.minstr.get(),
            'enddatum':
            self.enddatum_input.get_date(),
            'endzeit_stunde':
            self.endzeit_input.hourstr.get(),
            'endzeit_minute':
            self.endzeit_input.minstr.get(),
            'abweichende_adresse_beginn':
            self.abweichende_adresse_beginn_dropdown.get(),
            'abweichende_adresse_beginn_data':
            self.abweichende_adresse_beginn.get_data(),
            'abweichende_adresse_ende':
            self.abweichende_adresse_ende_dropdown.get(),
            'abweichende_adresse_ende_data':
            self.abweichende_adresse_ende.get_data(),
            'ist at':
            self.ist_at.get(),
            'ist pcg':
            self.ist_pcg.get(),
            'ist rb':
            self.ist_rb.get(),
            'ist afg':
            self.ist_afg.get()
        }
Пример #24
0
    frame.pack(padx=10, pady=10)

    # title type, release_date (from, to),  genres, user_raiting, countries.

    title_types_listbox, title_types_div = new_scrollable_listbox(
        frame, list(title_types.keys()), "Title type")
    title_types_div.grid(column=0, row=0)

    genres_listbox, genres_div = new_scrollable_listbox(
        frame, list(genres.keys()), "Genres")
    genres_div.grid(column=1, row=0)

    release_date_from_label = Label(frame, text="Release date from")
    release_date_from_label.grid(column=0, row=1)
    release_date_from_calendar = Calendar(frame)
    release_date_from_calendar.grid(column=0, row=2)

    release_date_to_label = Label(frame, text="to")
    release_date_to_label.grid(column=1, row=1)
    release_date_to_calendar = Calendar(frame)
    release_date_to_calendar.grid(column=1, row=2)

    user_raiting_label = Label(frame, text="User rating")
    user_raiting_label.grid(column=0, row=3, columnspan=2)
    # https://github.com/MenxLi/tkSliderWidget
    slider = Range_slider(frame,
                          width=400,
                          height=60,
                          min_val=1,
                          max_val=10,
                          init_lis=[1, 10],
Пример #25
0
def Search():
    clear(frame2)
    frame3 = Frame(frame2)
    frame4 = Frame(frame2)
    frame5 = Frame(frame2)
    Label(frame3, text="Guest First Name", font=("arial", 12),
          height=2).grid(row=0, column=0)
    FirstName = Entry(frame3, font=("arial", 12))
    FirstName.grid(row=0, column=1)
    Label(frame3, text="Guest Last Name", font=("arial", 12),
          height=2).grid(row=0, column=2)
    LastName = Entry(frame3, font=("arial", 12))
    LastName.grid(row=0, column=3)
    Label(frame3, text="Room Number", font=("arial", 12),
          height=2).grid(row=0, column=4)
    Room = Entry(frame3, font=("arial", 12))
    Room.grid(row=0, column=5)
    Label(frame3, text="Phone Number", font=("arial", 12),
          height=2).grid(row=0, column=6)
    Phone = Entry(frame3, font=("arial", 12))
    Phone.grid(row=0, column=7)
    Label(frame4, text="Street Address", font=("arial", 12),
          height=2).grid(row=1, column=0)
    Address = Entry(frame4, font=("arial", 12))
    Address.grid(row=1, column=1)
    Label(frame4, text="Check In Date", font=("arial", 12),
          height=2).grid(row=1, column=2)
    CheckIn = Calendar(frame4, selectmode='day', date_pattern='y-mm-dd')
    CheckIn.selection_clear()
    CheckIn.grid(row=1, column=3)
    Label(frame4, text="Check Out Date", font=("arial", 12),
          height=2).grid(row=1, column=4)
    CheckOut = Calendar(frame4, selectmode='day', date_pattern='y-mm-dd')
    CheckOut.selection_clear()
    CheckOut.grid(row=1, column=5)

    def check():
        search_result = search_data(FirstName.get(), LastName.get(),
                                    Room.get(), Phone.get(), Address.get(),
                                    CheckIn.get_date(), CheckOut.get_date())
        if search_result:
            clear(frame5)
            Label(frame5,
                  text="Guest Name",
                  font=("arial", 20),
                  height=2,
                  width=18).grid(row=0, column=0)
            Label(frame5,
                  text="Room Number",
                  font=("arial", 20),
                  height=2,
                  width=18).grid(row=0, column=1)
            Label(frame5,
                  text="Check In Date",
                  font=("arial", 20),
                  height=2,
                  width=18).grid(row=0, column=2)
            Label(frame5,
                  text="Check out Date",
                  font=("arial", 20),
                  height=2,
                  width=18).grid(row=0, column=3)
            for i in range(len(search_result)):
                B = Button(frame5,
                           text=search_result[i][0] + ' ' +
                           search_result[i][1],
                           command=partial(GuestProfile, search_result[i][5]),
                           font=("arial", 15),
                           height=2,
                           width=24,
                           borderwidth=1,
                           relief="groove")
                B.grid(row=i + 1, column=0)
                Label(frame5,
                      text=search_result[i][2],
                      font=("arial", 15),
                      height=2,
                      width=24,
                      borderwidth=1,
                      relief="groove").grid(row=i + 1, column=1)
                Label(frame5,
                      text=search_result[i][3],
                      font=("arial", 15),
                      height=2,
                      width=24,
                      borderwidth=1,
                      relief="groove").grid(row=i + 1, column=2)
                Label(frame5,
                      text=search_result[i][4],
                      font=("arial", 15),
                      height=2,
                      width=24,
                      borderwidth=1,
                      relief="groove").grid(row=i + 1, column=3)
        elif search_result == []:
            clear(frame5)
            Label(frame5, text="No Match Found", font=("arial", 25),
                  height=2).grid(row=0, column=0)
        else:
            clear(frame5)
            Label(frame5,
                  text="Please Enter Input(s)",
                  font=("arial", 25),
                  height=2).grid(row=0, column=0)
        CheckIn.selection_clear()
        CheckOut.selection_clear()

    Button1 = Button(frame4, text='Search', command=check,
                     font=("arial", 14)).grid(row=1, column=6)
    frame3.grid(row=0, column=0)
    frame4.grid(row=1, column=0)
    frame5.grid(row=2, column=0)
    frame2.grid(row=1, column=0)
cal = Calendar(root,
               font="fixedsys 14",
               selectmode="day",
               locale="en_US",
               cursor="sizing",
               background="white",
               disabledbackground="white",
               bordercolor="pink",
               headersbackground="bisque2",
               normalbackground="black",
               foreground="bisque4",
               normalforeground="bisque4",
               headersforeground="bisque4")

cal.config(background="black")
cal.grid(row=0, column=0, sticky="N", rowspan=9)
cal.bind("<<CalendarSelected>>", ListTodo)

#Variable Global
tanggal = str(cal.selection_get())

#Style
style = ttk.Style()
style.configure("Treeview", background="bisque4", foreground="bisque4")

treev = ttk.Treeview(root)
treev.grid(row=0, column=1, sticky="WNE", rowspan=4, columnspan=2)

#Scrollbar Settings
scrollBar = tk.Scrollbar(root, orient="vertical", command=treev.yview)
scrollBar.grid(row=0, column=3, sticky="ENS", rowspan=4)
Пример #27
0
Grid.rowconfigure(root, 0, weight=1)
Grid.columnconfigure(root, 0, weight=1)

cal = Calendar(
    root,
    font="Arial 25",
    locale='en_US',
    showweeknumbers=False,
    showothermonthdays=False,
)
entry = ttk.Entry(root)
btn = ttk.Button(root, text="Choose file", command=OnChooseFile)
btn_parse = ttk.Button(root, text="Parse", command=OnParse)

cal.grid(row=0,
         column=0,
         rowspan=8,
         columnspan=8,
         sticky=tk.N + tk.S + tk.W + tk.E)
entry.grid(row=8, column=0, columnspan=7, sticky=tk.W + tk.E)
btn.grid(row=8, column=7)
btn_parse.grid(row=9, column=0, rowspan=1, columnspan=8)

cal.bind("<<CalendarSelected>>", OnSelected)
cal.bind("<<CalendarMonthChanged>>", OnMonthChanged)

cal.tag_config('reminder', background='deep pink',
               foreground='white')  #background='royal blue'

root.mainloop()
Пример #28
0
class BIKE(tk.Frame):

	
	def __init__(self, parent, controller):
		tk.Frame.__init__(self, parent)
		self.controller=controller
		self.label=tk.Label(self, text="BIKE DETAILS", font=LARGE_FONT)
		self.CID=Label(self, text="ENTER CURRENT CUSTOMER ID:", font=SMALL_FONT)
		self.transID=Label(self, text="ENTER TRANSACTION ID:", font=SMALL_FONT)
		self.current_id=Text(self, height=2, width=30)
		self.current_trans=Text(self, height=2, width=30)


		self.label.grid(row=0,column=1,sticky='w',padx=20, pady=20)
		self.CID.grid(row=1, column=0, sticky='w',padx=20, pady=20)
		self.current_id.grid(row=1, column=1, sticky='w',padx=20, pady=20)
		self.transID.grid(row=2, column=0, sticky='w',padx=20, pady=20)
		self.current_trans.grid(row=2, column=1, sticky='w',padx=20, pady=20)


		self.DatePicked=datetime.date(1984, 6, 24)
		#adding radio buttons for choosing car
		self.bikes=[("Pulsar",0), ("Splendor",1), ("X-Blade",2), ("FZ-S",3)]
		self.label1=tk.Label(self, text="Choose Bike: ", font=SMALL_FONT)
		self.label1.grid(row=3,column=0, sticky=W,padx=20, pady=20)

		
		self.var=StringVar()
		self.r1=Radiobutton(self, text="PULSAR", variable=self.var, value="Pulsar", command=self.asign).grid(row=3, column=1, sticky='w',padx=20, pady=20)
		self.r2=Radiobutton(self, text="SPLENDOR", variable=self.var, value="Splendor", command=self.asign).grid(row=4, column=1, sticky='w',padx=20, pady=20)
		self.r3=Radiobutton(self, text="X-BLADE", variable=self.var, value="X-Blade", command=self.asign).grid(row=5, column=1, sticky='w',padx=20, pady=20)
		self.r4=Radiobutton(self, text="FZ-S", variable=self.var, value="FZ-S", command=self.asign).grid(row=6, column=1, sticky='w',padx=20, pady=20)

		
		#Adding calender to select date
		ttk.Label(self, text="Date: ", font=SMALL_FONT).grid(row=7, column=0,sticky='w',padx=20, pady=20)
		ttk.Button(self, text='Calendar', command=lambda: self.opencal("Calendar")).grid(row=7,column=1, sticky='w',padx=20, pady=20)

		#adding dropdown box for plan selection
		self.label2=ttk.Label(self, text="Choose plan", font=SMALL_FONT)
		self.label2.grid(row=8,column=0,sticky='w',padx=20, pady=20)

		options=["1 Day","5 Days", "10 Days"] 	

		self.variable=StringVar(self)
		self.variable.set(options[0])

		self.w=OptionMenu(self,self.variable, *options)
		self.w.grid(row=8,column=1,sticky='w',padx=20, pady=20)

		#Adding the back and next button
		self.button1=ttk.Button(self, text="BACK", command=lambda: controller.show_frame(VehicleType))
		self.button2=ttk.Button(self, text="NEXT", command=self.adding) 

		self.button1.grid(row=9, column=0, sticky='w',padx=20, pady=20)
		self.button2.grid(row=9, column=1, sticky='w',padx=20, pady=20)

	def adding(self):

		self.CID=self.current_id.get("1.0","end-1c")
		self.tid=self.current_trans.get("1.0","end-1c")

		self.days=self.variable.get()  # This stores the duration for which the vehicle is rented
		if self.days=="1 Day":
			self.day="one_day"
		elif self.days=="5 Days":
			self.day="five_days"
		elif self.days=="10 Days":
			self.day="ten_days"
		self.bike_price=calculating_bike_price(self.day, self.BikeChoice, 0)
		self.CarChoice="-"
		self.customer_name=get_customer_name(self.CID,"")	
		inserting_trsaction(self.CID, self.customer_name, self.tid, self.CarChoice, self.BikeChoice, self.DatePicked, self.days, self.bike_price)

	def print_sel(self):
		self.DatePicked=(self.cal.selection_get()).strftime('%m/%d/%Y')
		self.popup.destroy()

	def opencal(self,msg):
		self.popup=tk.Toplevel()
		
		self.msg=self.popup.wm_title("calender")
		self.la=ttk.Label(self.popup, text=msg, font=LARGE_FONT)
		self.la.grid(row=0,column=0, sticky='w')
		self.cal=Calendar(self.popup, font="Arial 14", selectmode='day',
						cursor='hand1', year=2018, month=2, day=5)
		self.bu=ttk.Button(self.popup, text="OK", command=self.print_sel)

		self.cal.grid(row=1,column=0, sticky='w')
		self.bu.grid(row=2, column=0, sticky='w')

		self.popup.mainloop()


		
	def asign(self):
		self.BikeChoice=self.var.get()
Пример #29
0
def login_table():
    try:
        top = Toplevel(gui)
        # top.geometry("100x100")
        top.configure(bg='white')
        top.title("GENERATE LOG SHEET")

        def gen():
            def genrate(d, d1, t, t1):

                # loc = time.strftime("%H%M%S")

                wb = openpyxl.Workbook()

                # Get workbook active sheet
                # from the active attribute
                sheet = wb.active

                conn = sqlite3.connect('datacollector.db')
                curs = conn.cursor()
                curs.execute(
                    "SELECT * FROM LOGIN WHERE ID = 'Unrecognized' AND  Login_Date >= (?) AND Login_Date <= (?) AND Login_Time >= (?) AND Login_Time <=(?)",
                    (d, d1, t, t1))
                mysel = curs.execute(
                    "SELECT * FROM LOGIN WHERE ID = 'Unrecognized' AND  Login_Date >= (?) AND Login_Date <= (?) AND Login_Time >= (?) AND Login_Time <=(?)",
                    (d, d1, t, t1))

                # col_names = [cn[0] for cn in curs.description]
                # str(col_names)
                # rows = curs.fetchmany()

                # x = PrettyTable(col_names)
                # x.align[col_names[1]] = "l"
                # x.align[col_names[2]] = "r"
                # x.padding_width = 1
                # for row in rows:
                # add_row(row)
                # print(row)
                # print(x)
                # tabstring = x.get_string()
                # worksheet.write(tabstring)

                sheet.cell(row=1, column=1).value = "ID"
                sheet.cell(row=1, column=2).value = "Name"
                sheet.cell(row=1, column=3).value = "Login_Time"
                sheet.cell(row=1, column=4).value = "Login_Date"
                sheet.cell(row=1, column=5).value = "File Path"
                sheet.cell(row=1, column=7).value = "IMAGE"

                for i, row in enumerate(mysel):

                    for j, it in enumerate(row):
                        sheet.cell(row=i + 2, column=j + 1).value = it

                wb.save("F:\image recognition\LogSheet\Log_sheet.xlsx")

                # Get workbook active sheet
                # from the active attribute
                sheet = wb.active
                # print(df.Login_Time)

                sheet.cell(row=1, column=1).value = "ID"
                sheet.cell(row=1, column=2).value = "Name"
                sheet.cell(row=1, column=3).value = "Login_Time"
                sheet.cell(row=1, column=4).value = "Login_Date"
                sheet.cell(row=1, column=5).value = "File Path"
                sheet.cell(row=1, column=7).value = "IMAGE"
                df = pd.read_excel(
                    "F:\image recognition\LogSheet\Log_sheet.xlsx")
                end = len(df)
                for i in range(0, end):
                    sp = df.iloc[i, 2]
                    cleanString = re.sub('\W+', '', sp)
                    sheet.cell(
                        row=i + 2, column=5
                    ).value = 'F:\image recognition\\Unrecognized\Intruder.' + str(
                        cleanString) + '.jpg'
                    sheet.cell(row=i + 2,
                               column=6).value = 'INTRUDER' + str(i + 1)
                    a = 'E' + str(i + 2)
                    b = 'F' + str(i + 2)
                    sheet.cell(
                        row=i + 2, column=7
                    ).value = '=HYPERLINK(' + str(a) + ',' + str(b) + ')'

                for i, row in enumerate(mysel):

                    for j, it in enumerate(row):
                        sheet.cell(row=i + 2, column=j + 1).value = it

                wb.save("F:\image recognition\LogSheet\Log_sheet.xlsx")

                # output = open("unrecognized_details.txt", "w")
                # output.write("Login Data")
                # output.write(tabstring)
                # output.close()
                conn.commit()
                conn.close()

            d = cal.selection_get()
            d1 = cal1.selection_get()
            t = tent.get()
            t1 = tent1.get()

            genrate(d, d1, t, t1)

        Label(top,
              text="Generate Log Sheet",
              bg="blue",
              width="100",
              height="2",
              font=("Calibri", 13)).grid(columnspan=3, row=0)
        Label(top, text="DATE FROM :", bg="blue",
              font=("Calibri", 13)).grid(pady=10, row=1, column=0)
        cal = Calendar(top, font="Arial 14", selectmode='day')
        cal.grid(pady=10, row=2, padx=10, column=0)

        # ttk.Button(top, text="ok", command=print_sel).pack()
        Label(top, text="DATE TO :", bg="blue",
              font=("Calibri", 13)).grid(pady=10, row=1, column=2)
        cal1 = Calendar(top, font="Arial 14", selectmode='day')
        cal1.grid(pady=10, padx=10, row=2, column=2)

        Label(top, text="TIME FROM :", bg="blue",
              font=("Calibri", 13)).grid(pady=10, column=0, row=3)
        tent = Entry(top, font=('Ariel', 10), bg='light blue', bd=4)
        tent.grid(pady=10, column=0, row=4, padx=10)
        Label(top, text="TIME TO :", bg="blue",
              font=("Calibri", 13)).grid(pady=10, column=2, row=3)
        tent1 = Entry(top, font=('Ariel', 10), bg='light blue', bd=4)
        tent1.grid(pady=10, column=2, row=4, padx=10)

        # ttk.Button(top, text="ok", command=print_sel).pack()

        Button(top,
               text='Generate',
               width=7,
               height=1,
               bd=4,
               command=gen,
               font=("Calibri", 13, 'bold')).grid(column=1, row=5, pady=10)

    except:
        print('INFO...[Something went wrong]')
Пример #30
0
class App:
    ''' Interfaz básica del módulo tkinter y se agrega el widget tkcalendar.Calendar
        Más info en https://pypi.org/project/tkcalendar/
    '''

    def __init__(self):
        # Interfaz base de tkinter.
        # Más información en https://docs.python.org/3/library/tkinter.html
        self.root = tk.Tk()

        # método que se ejecuta al cerrar la ventana
        self.root.protocol("WM_DELETE_WINDOW", self.exit)

        self.root.withdraw()
        self.root.title('Calendario Personal')

        # Widget para mostrar calendario
        self.top = tk.Toplevel(self.root)
        self.top.protocol("WM_DELETE_WINDOW", self.exit)

        # es necesario instalar el módulo tkcalendar
        # python -m pip install tkcalendar
        # más info en https://pypi.org/project/tkcalendar/
        self.cal = Calendar(self.top,
                            font="Arial 10", background='darkblue',
                            foreground='white', selectmode='day')

        self.cal.grid()

        # Boton para ver registros del día
        ttk.Button(
            self.top, text="Ver eventos",

            # Como command recibe el nombre de un método, no nos permite pasar argumentos.
            # Para ello, utilizamos lambda, que crea una función anónima.
            # Puede recibir varios parámetros pero puede ejecutar una sola expresión/acción.
            # Más documentación en https://docs.python.org/3/reference/expressions.html#lambda
            command=lambda: ListView(
                root=self.root,
                day=self.cal.get_date()
            )).grid(sticky="ew", pady=5, padx=5)

        # Botón para crear un nuevo evento
        ttk.Button(
            self.top, text="Nuevo evento",
            command=lambda: EventoForm(
                self.root,
            )).grid(sticky="ew", pady=5, padx=5)

        # Loop para mostrar la ventana sin cerrarse
        self.root.mainloop()

    def exit(self):
        """ Cierr conexión a base de datos y todas las interfaces gráficas """

        # Cierra conexión a la base de datos
        ce.close_conn(ce.DB_CONN)

        # Cierra ventana de Calendario (widget)
        self.top.quit()
        self.top.destroy()

        # Cierra ventana principal
        self.root.quit()
        self.root.destroy()

        # Cierra el intérprete de Python
        sys.exit()