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)
示例#2
0
    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
示例#10
0
    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()
示例#11
0
 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)