def __queryDB(self): y = datetime.now().year m = datetime.now().month d = datetime.now().day today = "{:0>2d}".format(d) + '/' + "{:0>2d}".format(m) + '/' + str(y) self.query_dict = { 'cgi': None, 'tec': '234', 'date': { 'first': '01/01/2013', 'last': today, 'd_all': False }, 'pol': { 'cp': None, 'loc': None, 'con': None, 'dis': None }, 'fis': { 'form': None, 'lat': None, 'lon': None, 'lat2': None, 'lon2': None, 'radius': None }, 'kmz': { 'ico_or_pol': None, 'n': 338, 'scale': 1, 'color': "orange", 'radius': None, 'alt': 35, 'amp': 110 } } # MAIN WINDOW ######################################################### # --- Theme configuration --------------------------------------------- bg = "gray25" fg = "dark orange" font = ("Helvetica", "10", "bold") self.style.theme_use("vladimir") tfs = ttk.Style() tfs.configure("TFrame", background="#404040") # --- Toplevel -------------------------------------------------------- tl = Toplevel(self.master) #tl.geometry("410x420") tl.geometry("530x420") tl.configure(borderwidth=5, bg=bg) tl.title("Pesquisar Base de Dados") icons = os.getcwd() + os.sep + "icons" + os.sep # path to icons icon = icons + "maps.ico" tl.iconbitmap(icon) tl.resizable(width=FALSE, height=FALSE) # --- Base Frame ------------------------------------------------------ f1 = Frame(tl, bg=bg) f1.pack_propagate(0) # don't shrink f1.pack(side=BOTTOM, padx=0, pady=0, expand=TRUE, fill=BOTH) # --- Notebook -------------------------------------------------------- nf = fontTK.Font(root=tl, family='helvetica', size='12', weight='bold') s = ttk.Style() s.configure('.', font=nf) n = ttk.Notebook(f1) n.pack(side=TOP) # --- Messages / Log Frame -------------------------------------------- self.msg = StringVar() self.msg.set("Log...\nMensagens do programa...") l1 = Message(f1, bg=fg, bd=5, fg=bg, textvariable=self.msg, font=("Helvetica", "10", "bold italic"), width=500) l1.pack_propagate(0) l1.pack(expand=TRUE, fill=BOTH, pady=5) # --- Pesquisar Button ------------------------------------------------ b = Button(f1, text="Pesquisar", command=self.__queryDB_button, width=10, bg="forest green", fg="white smoke", font=("Helvetica", "8", "bold")) b.pack(side=BOTTOM, anchor=E) # CGI TAB ############################################################# # --- Main Frame ------------------------------------------------------ tab_cgi = ttk.Frame(n) n.add(tab_cgi, text='CGI') # --- inside Frame ---------------------------------------------------- f_cgi = ttk.Frame(tab_cgi) f_cgi.pack_propagate(0) f_cgi.pack(padx=16, pady=33) # --- Labels ---------------------------------------------------------- cgi_l1 = Label(f_cgi, text=None, bg=bg) cgi_l2 = Label(f_cgi, text="Operadora", bg=bg, fg=fg, width=7, justify=RIGHT) cgi_l3 = Label(f_cgi, text="LAC", bg=bg, fg=fg, width=7, justify=RIGHT) cgi_l4 = Label(f_cgi, text="CID", bg=bg, fg=fg, width=7, justify=RIGHT) cgi_l5 = Label(f_cgi, text="CGI", bg=bg, fg=fg) cgi_l1.grid(row=0, pady=0) cgi_l2.grid(row=1, column=0, padx=5, pady=5) cgi_l3.grid(row=1, column=2, pady=5) cgi_l4.grid(row=1, column=4, pady=5) cgi_l5.grid(row=4, pady=5, padx=5) # --- Entries --------------------------------------------------------- self.cgi_e1 = Entry(f_cgi, width=2) self.cgi_e2 = Entry(f_cgi, width=4) self.cgi_e3 = Entry(f_cgi, width=6) self.cgi_e4 = Entry(f_cgi, width=25) self.cgi_e1.grid(row=1, column=1, pady=5) self.cgi_e2.grid(row=1, column=3, pady=5) self.cgi_e3.grid(row=1, column=5, pady=5) self.cgi_e4.grid(row=4, column=1, columnspan=4, pady=5) # --- Separator ------------------------------------------------------- cgi_s = ttk.Separator(f_cgi, orient=HORIZONTAL) cgi_s.grid(row=3, column=0, columnspan=6, sticky=EW, padx=5, pady=5) # TECNOLOGIA TAB ###################################################### # --- Main Frame ------------------------------------------------------ tab_tec = ttk.Frame(n) n.add(tab_tec, text='Tecnologia') # --- inside Frame ---------------------------------------------------- f_tec = ttk.Frame(tab_tec) f_tec.pack_propagate(0) f_tec.pack(padx=40, pady=45) # --- variables ------------------------------------------------------- self.tec_2g = IntVar() self.tec_3g = IntVar() self.tec_4g = IntVar() # --- Checkbuttons ---------------------------------------------------- tec_cb1 = Checkbutton(f_tec, text="2G", onvalue=2, variable=self.tec_2g, bg=bg, fg=fg) tec_cb2 = Checkbutton(f_tec, text="3G", onvalue=3, variable=self.tec_3g, bg=bg, fg=fg) tec_cb3 = Checkbutton(f_tec, text="4G", onvalue=4, variable=self.tec_4g, bg=bg, fg=fg) tec_cb1.grid(row=1, pady=5, padx=5) tec_cb2.grid(row=2, pady=5, padx=5) tec_cb3.grid(row=3, pady=5, padx=5) # --- Labels ---------------------------------------------------------- tec_l1 = Label(f_tec, text="(GSM)", bg=bg, fg=fg) tec_l2 = Label(f_tec, text="(WCDMA, HSPA, UMTS)", bg=bg, fg=fg) tec_l3 = Label(f_tec, text="(WIMAX, LTE)", bg=bg, fg=fg) tec_l1.grid(row=1, column=1, pady=5, sticky=W) tec_l2.grid(row=2, column=1, pady=5) tec_l3.grid(row=3, column=1, pady=5, sticky=W) # DATA TAB ############################################################ # --- Main Frame ------------------------------------------------------ tab_dat = ttk.Frame(n) n.add(tab_dat, text='Data') # --- inside Frame ---------------------------------------------------- f_dat = ttk.Frame(tab_dat) f_dat.pack_propagate(0) f_dat.pack(padx=0, pady=55) # --- variables ------------------------------------------------------- days = ["{:0>2d}".format(n + 1) for n in range(31)] months = [ 'JAN', 'FEV', 'MAR', 'ABR', 'MAI', 'JUN', 'JUL', 'AGO', 'SET', 'OUT', 'NOV', 'DEC' ] years = [n + 1 for n in range(2012, datetime.now().year)] self.date_all = IntVar() # --- Labels ---------------------------------------------------------- dat_l1 = Label(f_dat, text="De", bg=bg, fg=fg) dat_l2 = Label(f_dat, text="/", bg=bg, fg=fg) dat_l3 = Label(f_dat, text="/", bg=bg, fg=fg) dat_l4 = Label(f_dat, text="a", bg=bg, fg=fg) dat_l5 = Label(f_dat, text="/", bg=bg, fg=fg) dat_l6 = Label(f_dat, text="/", bg=bg, fg=fg) dat_l7 = Label(f_dat, text=" ", bg=bg, fg=fg) dat_l1.grid(row=1, column=0, pady=5, padx=5) dat_l2.grid(row=1, column=2, pady=5, padx=0) dat_l3.grid(row=1, column=4, pady=5, padx=0) dat_l4.grid(row=1, column=6, pady=5, padx=2) dat_l5.grid(row=1, column=8, pady=5, padx=0) dat_l6.grid(row=1, column=10, pady=5, padx=0) dat_l7.grid(row=1, column=12, pady=5, padx=0) # --- Comboboxes ------------------------------------------------------ self.dat_cb1 = ttk.Combobox(f_dat, width=3, textvariable=None, values=days) self.dat_cb2 = ttk.Combobox(f_dat, width=5, textvariable=None, values=months) self.dat_cb3 = ttk.Combobox(f_dat, width=4, textvariable=None, values=years) self.dat_cb4 = ttk.Combobox(f_dat, width=3, textvariable=None, values=days) self.dat_cb5 = ttk.Combobox(f_dat, width=5, textvariable=None, values=months) self.dat_cb6 = ttk.Combobox(f_dat, width=4, textvariable=None, values=years) self.dat_cb1.grid(row=1, column=1, padx=0) self.dat_cb2.grid(row=1, column=3, padx=0) self.dat_cb3.grid(row=1, column=5, padx=0) self.dat_cb4.grid(row=1, column=7, padx=0) self.dat_cb5.grid(row=1, column=9, padx=0) self.dat_cb6.grid(row=1, column=11, padx=0) # --- Separator ------------------------------------------------------- dat_s = ttk.Separator(f_dat, orient=HORIZONTAL) dat_s.grid(row=2, columnspan=13, sticky=EW, pady=5, padx=5) # --- Radiobuttons ---------------------------------------------------- dat_rb1 = Radiobutton(f_dat, text='Todas', variable=self.date_all, value=1, bg=bg, fg=fg) dat_rb1.grid(row=3, column=0, columnspan=6, pady=5, padx=5) dat_rb2 = Radiobutton(f_dat, text='Mais Recentes', variable=self.date_all, value=0, bg=bg, fg=fg) dat_rb2.grid(row=3, column=6, columnspan=5, pady=5, padx=5) dat_rb1.deselect() dat_rb2.select() # LOCALIZAÇÃO ADMINISTRATIVA TAB ###################################### # --- Main Frame ------------------------------------------------------ tab_pol = ttk.Frame(n) n.add(tab_pol, text='Localização Administrativa') # --- inside Frame ---------------------------------------------------- f_pol = ttk.Frame(tab_pol) f_pol.pack_propagate(0) f_pol.pack(padx=0, pady=40) # --- Labels ---------------------------------------------------------- pol_l1 = Label(f_pol, text="Cod Postal", bg=bg, fg=fg) pol_l2 = Label(f_pol, text="Localidade", bg=bg, fg=fg) pol_l3 = Label(f_pol, text="Concelho", bg=bg, fg=fg) pol_l4 = Label(f_pol, text="Distrito", bg=bg, fg=fg) pol_l1.grid(row=2, column=0, padx=5, pady=5) pol_l2.grid(row=3, column=0, padx=5, pady=5) pol_l3.grid(row=4, column=0, padx=5, pady=5) pol_l4.grid(row=5, column=0, padx=5, pady=5) # --- Entries --------------------------------------------------------- self.pol_e1 = Entry(f_pol) self.pol_e2 = Entry(f_pol) self.pol_e3 = Entry(f_pol) self.pol_e4 = Entry(f_pol) self.pol_e1.grid(row=2, column=1) self.pol_e2.grid(row=3, column=1) self.pol_e3.grid(row=4, column=1) self.pol_e4.grid(row=5, column=1) # LOCALIZAÃÇÃO FÍSICA TAB ############################################# # --- Main Frame ------------------------------------------------------ tab_fis = ttk.Frame(n) n.add(tab_fis, text='Localização Física') # --- inside Frame ---------------------------------------------------- f_fis = ttk.Frame(tab_fis) f_fis.pack_propagate(0) f_fis.pack(padx=5, pady=10) # --- Labels ---------------------------------------------------------- fis_l1 = Label(f_fis, text="Círculo", bg=bg, fg=fg, font=font) fis_l2 = Label(f_fis, text="Latitude", bg=bg, fg=fg) fis_l3 = Label(f_fis, text="Longitude", bg=bg, fg=fg) fis_l4 = Label(f_fis, text="Raio (Kms)", bg=bg, fg=fg) fis_l5 = Label(f_fis, text="Quadrado", bg=bg, fg=fg, font=font) fis_l6 = Label(f_fis, text="Latitude 1", bg=bg, fg=fg) fis_l7 = Label(f_fis, text="Longitude 1", bg=bg, fg=fg) fis_l8 = Label(f_fis, text="Latitude 2", bg=bg, fg=fg) fis_l9 = Label(f_fis, text="Longitude 2", bg=bg, fg=fg) fis_l1.grid(row=1, column=0, columnspan=4, padx=5, pady=0) fis_l2.grid(row=2, column=0, padx=5, pady=5) fis_l3.grid(row=2, column=2, padx=5, pady=5) fis_l4.grid(row=3, column=0, padx=5, pady=5) fis_l5.grid(row=5, column=0, columnspan=4, padx=5, pady=0) fis_l6.grid(row=6, column=0, padx=5, pady=5) fis_l7.grid(row=6, column=2, padx=5, pady=5) fis_l8.grid(row=7, column=0, padx=5, pady=5) fis_l9.grid(row=7, column=2, padx=5, pady=5) # --- Entries --------------------------------------------------------- self.fis_e1 = Entry(f_fis, width=18) self.fis_e2 = Entry(f_fis, width=18) self.fis_e3 = Entry(f_fis, width=18) self.fis_e4 = Entry(f_fis, width=18) self.fis_e5 = Entry(f_fis, width=18) self.fis_e6 = Entry(f_fis, width=18) self.fis_e7 = Entry(f_fis, width=18) self.fis_e1.grid(row=2, column=1) self.fis_e2.grid(row=2, column=3) self.fis_e3.grid(row=3, column=1) self.fis_e4.grid(row=6, column=1) self.fis_e5.grid(row=6, column=3) self.fis_e6.grid(row=7, column=1) self.fis_e7.grid(row=7, column=3) # --- Separator ------------------------------------------------------- fis_s = ttk.Separator(f_fis, orient=HORIZONTAL) fis_s.grid(row=4, columnspan=4, sticky=EW, pady=5, padx=5) # EXCEL KMZ READY TAB ################################################# # --- Main Frame ------------------------------------------------------ tab_kmz = ttk.Frame(n) n.add(tab_kmz, text='Excel KMZ') # --- inside Frame ---------------------------------------------------- f_kmz = ttk.Frame(tab_kmz) f_kmz.pack_propagate(0) f_kmz.pack(padx=25, pady=25) # --- Labels ---------------------------------------------------------- kmz_l1 = Label(f_kmz, text="Icons", bg=bg, fg=fg, font=font) kmz_l2 = Label(f_kmz, text="Nº Icon", bg=bg, fg=fg) kmz_l3 = Label(f_kmz, text="Escala", bg=bg, fg=fg) kmz_l4 = Label(f_kmz, text="Cor", bg=bg, fg=fg) kmz_l5 = Label(f_kmz, text=" ", bg=bg, fg=fg) kmz_l6 = Label(f_kmz, text="Polígonos", bg=bg, fg=fg, font=font) kmz_l7 = Label(f_kmz, text="Raio", bg=bg, fg=fg) kmz_l8 = Label(f_kmz, text="Altitude", bg=bg, fg=fg) kmz_l9 = Label(f_kmz, text="Cor", bg=bg, fg=fg) kmz_l1.grid(row=1, column=0, columnspan=6, padx=5, pady=5) kmz_l2.grid(row=2, column=0, padx=5, pady=5) kmz_l3.grid(row=2, column=2, padx=5, pady=5) kmz_l4.grid(row=2, column=4, padx=5, pady=5) kmz_l5.grid(row=2, column=6, padx=5, pady=5) kmz_l6.grid(row=5, column=0, columnspan=6, padx=5, pady=5) kmz_l7.grid(row=6, column=0, padx=5, pady=5) kmz_l8.grid(row=6, column=2, padx=5, pady=5) kmz_l9.grid(row=6, column=4, padx=5, pady=5) # --- Entries --------------------------------------------------------- self.kmz_e1 = Entry(f_kmz, width=3) self.kmz_e2 = Entry(f_kmz, width=3) self.kmz_e3 = Entry(f_kmz) self.kmz_e4 = Entry(f_kmz, width=3) self.kmz_e5 = Entry(f_kmz, width=3) self.kmz_e6 = Entry(f_kmz) self.kmz_e1.grid(row=2, column=1) self.kmz_e2.grid(row=2, column=3) self.kmz_e3.grid(row=2, column=5) self.kmz_e4.grid(row=6, column=1) self.kmz_e5.grid(row=6, column=3) self.kmz_e6.grid(row=6, column=5) # --- Separator ------------------------------------------------------- kmz_s = ttk.Separator(f_kmz, orient=HORIZONTAL) kmz_s.grid(row=4, columnspan=7, sticky=EW, pady=5, padx=5)