def initUI(self): fondo = ttk.Frame(self) if self.img.tipoRuta == Util.RUTA_LOCAL: iconoImg = Image.open(self.img.source) else: try: iconoImg = Image.open(cStringIO.StringIO(urllib.urlopen(self.img.source).read())) except IOError as io: iconoImg = Image.open(cStringIO.StringIO(urllib.urlopen(Util.rutaImg_ImgNoEncontrada).read())) log.error(io) # raise io iconoImg.thumbnail(( int(Util.getMnsjConf("TablaRutas", "altoImgPreVis")), int(Util.getMnsjConf("TablaRutas", "anchoImgPreVis")) ), Image.ANTIALIAS) self.iconoPhotoImg = ImageTk.PhotoImage(iconoImg) ttk.Label(fondo, image = self.iconoPhotoImg).pack(expand = tk.TRUE, fill = tk.BOTH) ttk.Button(fondo, text = "Aceptar", command = self.close).pack(anchor = tk.NE, pady = 10, padx = 20) fondo.pack(expand = tk.TRUE, fill = tk.BOTH)
def initUI(self): fondo = ttk.Frame(self) if self.img.tipoRuta == Util.RUTA_LOCAL: iconoImg = Image.open(self.img.source) else: try: iconoImg = Image.open( cStringIO.StringIO(urllib.urlopen(self.img.source).read())) except IOError as io: iconoImg = Image.open( cStringIO.StringIO( urllib.urlopen(Util.rutaImg_ImgNoEncontrada).read())) log.error(io) # raise io iconoImg.thumbnail( (int(Util.getMnsjConf("TablaRutas", "altoImgPreVis")), int(Util.getMnsjConf("TablaRutas", "anchoImgPreVis"))), Image.ANTIALIAS) self.iconoPhotoImg = ImageTk.PhotoImage(iconoImg) ttk.Label(fondo, image=self.iconoPhotoImg).pack(expand=tk.TRUE, fill=tk.BOTH) ttk.Button(fondo, text="Aceptar", command=self.close).pack(anchor=tk.NE, pady=10, padx=20) fondo.pack(expand=tk.TRUE, fill=tk.BOTH)
def crearWidgetImg(self): iconoImg = self.crearIconoImagen() iconoImg.thumbnail( (int(Util.getMnsjConf("TablaRutas", "altoImgMuestra")), int(Util.getMnsjConf("TablaRutas", "anchoImgMuestra"))), Image.ANTIALIAS) self.iconoPhotoImg = ImageTk.PhotoImage(iconoImg) widgetImg = ttk.Label(self.tabla.frmScrollPane.interior, image=self.iconoPhotoImg) return widgetImg
def __init__(self, master, frmTabla): ''' Constructor ''' tk.Toplevel.__init__(self, master) self.padre = master self.attributes('-topmost', tk.TRUE) self.frmTabla = frmTabla self.title("Agregar Imagenes") #Opciones para el dialogo de imagenes para abrir una sola imagen de tkinter self.optDialogoImg = opciones = {} opciones['defaultextension'] = '.jpg' opciones['filetypes'] = [('Imagenes', Util.getMnsjConf("Validacion", "Extenciones"))] opciones['initialdir'] = '/home/ivan/' opciones['parent'] = self opciones['title'] = 'Escoge imagenes' #Opciones para el dialogo de imagenes para abrir un archivo con url's de imagenes de tkinter self.optDialogoArchivo = opciones = {} opciones['defaultextension'] = '.jpg' opciones['filetypes'] = [('all files', '.*'), ('text files', '.txt')] opciones['initialdir'] = '/home/ivan/Escritorio/' opciones['parent'] = self opciones['title'] = 'Escoge un imagen archivo de texto que contenga url\'s de imagenes' #Opciones para el dialogo de imagenes para abrir un directorio con imagenes de tkinter self.optDialogoDir = opciones = {} opciones['initialdir'] = '/home/ivan/Escritorio/' opciones['parent'] = self opciones['title'] = 'Escoge un directorio con imagenes' self.initUI() self.hide()
def removerImagen(self, imagen): '''Remueve una imagen de la nomClaseCorrecto en la que se encuentra ''' if imagen.nomClaseCorrecto is None: raise Exception(Util.getMnsjIdioma("Accion", "Error_Remover_None")) try: del self.dicClases[imagen.nomClaseCorrecto][imagen.__hash__()] logger.info("Imagen "+imagen.source+" removida de la clase "+imagen.nomClaseCorrecto) except KeyError: logger.error("Clase "+imagen.nomClaseCorrecto+" inexistente") raise Exception(Util.getMnsjConf('Accion', 'Error_Clase_Inexistente')) except Exception as e: raise e
def removerImagen(self, imagen): '''Remueve una imagen de la nomClaseCorrecto en la que se encuentra ''' if imagen.nomClaseCorrecto is None: raise Exception(Util.getMnsjIdioma("Accion", "Error_Remover_None")) try: del self.dicClases[imagen.nomClaseCorrecto][imagen.__hash__()] logger.info("Imagen " + imagen.source + " removida de la clase " + imagen.nomClaseCorrecto) except KeyError: logger.error("Clase " + imagen.nomClaseCorrecto + " inexistente") raise Exception( Util.getMnsjConf('Accion', 'Error_Clase_Inexistente')) except Exception as e: raise e
def agregarImagen(self, imagen): '''Agrega una imagen al diccionario de la nomClaseCorrecto que trae seteada''' if imagen.nomClaseCorrecto is None : imagen.nomClaseCorrecto = self.nomClaseDefault try: if not Valida.imagenExistenteOnClase(imagen,self.dicClases[imagen.nomClaseCorrecto]): self.dicClases[imagen.nomClaseCorrecto][imagen.__hash__()] = imagen logger.info("Imagen "+imagen.source+" agregada a la clase "+imagen.nomClaseCorrecto) else: logger.info("Imagen "+imagen.source+"no se puede agregar porque ya existe en esta clase "+imagen.nomClaseCorrecto) except KeyError: logger.error("Clase "+imagen.nomClaseCorrecto+" inexistente") raise Exception(Util.getMnsjConf('Accion', 'Error_Clase_Inexistente')) except Exception as e: raise e
def agregarImagen(self, imagen): '''Agrega una imagen al diccionario de la nomClaseCorrecto que trae seteada''' if imagen.nomClaseCorrecto is None: imagen.nomClaseCorrecto = self.nomClaseDefault try: if not Valida.imagenExistenteOnClase( imagen, self.dicClases[imagen.nomClaseCorrecto]): self.dicClases[imagen.nomClaseCorrecto][ imagen.__hash__()] = imagen logger.info("Imagen " + imagen.source + " agregada a la clase " + imagen.nomClaseCorrecto) else: logger.info( "Imagen " + imagen.source + "no se puede agregar porque ya existe en esta clase " + imagen.nomClaseCorrecto) except KeyError: logger.error("Clase " + imagen.nomClaseCorrecto + " inexistente") raise Exception( Util.getMnsjConf('Accion', 'Error_Clase_Inexistente')) except Exception as e: raise e
def __init__(self, img, tabla): ''' Crea los widgets correspondientes a imagen que estaran contenidos en tabla que se pasa como parametro ''' self.strVarEstaSelecccionado = tk.StringVar() self.chekbImg = ttk.Checkbutton(tabla.frmScrollPane.interior, variable=self.strVarEstaSelecccionado, command=self.checarSeleccion) self.lblRuta = tk.Text(tabla.frmScrollPane.interior, height=int( Util.getMnsjConf("TablaRutas", "altoCeldaRuta"))) self.lblRuta.insert(1.0, img.source) self.lblRuta.config(state=tk.DISABLED) self.widgetPrevisualizacion = None self.tabla = tabla self.img = img
def __init__(self, master, frmTabla): ''' Constructor ''' tk.Toplevel.__init__(self, master) self.padre = master self.attributes('-topmost', tk.TRUE) self.frmTabla = frmTabla self.title("Agregar Imagenes") #Opciones para el dialogo de imagenes para abrir una sola imagen de tkinter self.optDialogoImg = opciones = {} opciones['defaultextension'] = '.jpg' opciones['filetypes'] = [('Imagenes', Util.getMnsjConf("Validacion", "Extenciones"))] opciones['initialdir'] = '/home/ivan/' opciones['parent'] = self opciones['title'] = 'Escoge imagenes' #Opciones para el dialogo de imagenes para abrir un archivo con url's de imagenes de tkinter self.optDialogoArchivo = opciones = {} opciones['defaultextension'] = '.jpg' opciones['filetypes'] = [('all files', '.*'), ('text files', '.txt')] opciones['initialdir'] = '/home/ivan/Escritorio/' opciones['parent'] = self opciones[ 'title'] = 'Escoge un imagen archivo de texto que contenga url\'s de imagenes' #Opciones para el dialogo de imagenes para abrir un directorio con imagenes de tkinter self.optDialogoDir = opciones = {} opciones['initialdir'] = '/home/ivan/Escritorio/' opciones['parent'] = self opciones['title'] = 'Escoge un directorio con imagenes' self.initUI() self.hide()
def initUI(self): ''' Crea y empaqueta todos low widgets de la ventana ''' self.padre.title("Adquicicion de imagenes") #***************************************************************************************** frmHeader = ttk.Frame(self.padre, relief = tk.RAISED) mbMenu= ttk.Menubutton(frmHeader, text="Archivo") mbMenu.menu = tk.Menu(mbMenu) mbMenu["menu"] = mbMenu.menu mbMenu.menu.add_command(label = "Generar Archivo De Direcciones", command = self.abrirGenerarArchivoDeDirecciones) mbMenu.menu.add_command(label = "Generar Directorio de Imagenes", command = self.abrirVistaGuardarDirectorioImgs) mbMenu.pack(side = tk.LEFT) frmHeader.pack(side = tk.TOP, fill = tk.X, expand = tk.TRUE) #***************************************************************************************** #***************************************************************************************** frmNorte = ttk.Frame(self.padre) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ frmNorteOeste = ttk.Frame(frmNorte) lblLogo = ttk.Label(frmNorteOeste, background = "green", text="Logo") lblLogo.pack(fill = tk.BOTH) frmNorteOeste.grid(column = 0, row = 0) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ frmNorteEste = ttk.Frame(frmNorte) btnAgregarImg = ttk.Button(frmNorteEste, text="Agregar Imagen", width = Util.getMnsjConf("VistaPrincipal", "tamBotones"), command = self.abrirVistaMenuAgrImgs) btnAgregarImg.grid(column = 1, row = 0, pady = 5) btnCrearClase = ttk.Button(frmNorteEste, text="Nueva Clase", width = Util.getMnsjConf("VistaPrincipal", "tamBotones"), command = self.abrirVistaCrearClase) btnCrearClase.grid(column = 1, row = 1, pady = 5) frmNorteEste.grid(column = 1, row = 0) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ frmNorte.grid_columnconfigure(0,weight = 1) frmNorte.grid_columnconfigure(1,weight = 1) frmNorte.pack(fill = tk.X, side=tk.TOP) #***************************************************************************************** ttk.Separator(self.padre, orient = tk.HORIZONTAL).pack() #***************************************************************************************** frmCenter = ttk.Frame(self.padre) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ frmCenterOeste = ttk.Labelframe(frmCenter, text = "Acciones sobre la tabla") ttk.Label(frmCenterOeste, text = "Cambia de clase: ").pack(fill = tk.Y, anchor = tk.NW) self.selectedClase = StringVar() self.selectedClase.set(Accion.nomClaseDefault) self.cmbClases = ttk.Combobox(frmCenterOeste, textvariable=self.selectedClase, state = 'readonly') self.cmbClases['values'] = Accion.dicClases.keys() self.cmbClases.pack(fill = tk.Y, pady = 5) self.cmbClases.bind("<<ComboboxSelected>>", self.cambiarClase) ttk.Button(frmCenterOeste, text = "Mover Todo", width = Util.getMnsjConf("VistaPrincipal", "tamBotones"), command = self.abrirVistaMoverImgs).pack(fill = tk.Y, pady = 5) ttk.Button(frmCenterOeste, text = "Eliminar Todo", width = Util.getMnsjConf("VistaPrincipal", "tamBotones"), command = self.eliminarImagenes).pack(fill = tk.Y, pady = 5) ttk.Separator(frmCenterOeste, orient = tk.HORIZONTAL).pack(fill = tk.Y, expand = tk.TRUE) ttk.Button(frmCenterOeste, text = "Deshacer ultima Accion", width = Util.getMnsjConf("VistaPrincipal", "tamBotones"), command = self.deshacerAccion).pack(fill = tk.Y, pady = 5) frmCenterOeste.pack(fill = tk.BOTH, side = tk.LEFT, expand = tk.TRUE, padx = 5) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ frmCenterEste = ttk.Labelframe(frmCenter, text = "Imagenes de la clase") self.frmTabla = TablaRutas(frmCenterEste) self.frmTabla.pack(fill = tk.BOTH, expand = tk.TRUE) frmCenterEste.pack(fill = tk.BOTH, side = tk.LEFT, expand = tk.TRUE, padx = 5) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ frmCenter.pack(fill = tk.BOTH, side = tk.TOP, expand= tk.TRUE) #***************************************************************************************** #++++++++++++++++++++++++ Ventanas Emergentes ++++++++++++++++++++++++# self.frmVentanaCrearClase = VistaCrearClase(self, self.crearClase) self.frmVentanaMenuAgrImgs = VistaMenuAgregarImagenes(self, self.frmTabla) self.frmVentanaMoverImgs = VistaMoverSeleccionados(self, self.selectedClase, self.frmTabla.lstImgsSeleccionadas) self.frmVentanaGuaDirImgs = VistaGuardarDirectorioImgs(self)