Exemplo n.º 1
0
    def __init__(símismo, grupo_control, lista_itemas, creando_manual=True):
        símismo.grupo_control = grupo_control
        if creando_manual:
            símismo.receta = grupo_control.receta

        super().__init__(lista_itemas,
                         grupo_control.objeto,
                         creando_manual=creando_manual)

        símismo.lista_itemas = lista_itemas
        símismo.columnas = []

        símismo.cj_cols = NotImplemented

        símismo.cj_bts = tk.Frame(símismo, **Fm.formato_cajas)

        símismo.bt_editar = Bt.BotónImagen(
            símismo.cj_bts,
            comanda=símismo.editar,
            formato=Fm.formato_botones,
            img_norm=Art.imagen('BtEditarItema_norm'),
            img_sel=Art.imagen('BtEditarItema_sel'),
            ubicación=gf(Fm.ubic_BtsItemas),
            tipo_ubic='pack')
        símismo.bt_borrar = Bt.BotónImagen(
            símismo.cj_bts,
            comanda=símismo.quitar,
            formato=Fm.formato_botones,
            img_norm=Art.imagen('BtBorrarItema_norm'),
            img_sel=Art.imagen('BtBorrarItema_sel'),
            ubicación=gf(Fm.ubic_BtsItemas),
            tipo_ubic='pack')

        símismo.bind('<Enter>', lambda event, i=símismo: i.resaltar())
        símismo.bind('<Leave>', lambda event, i=símismo: i.desresaltar())
Exemplo n.º 2
0
    def estab_columnas(símismo, anchuras):
        x = [sum(anchuras[:n]) for n in range(len(anchuras))]
        for n, col in enumerate(símismo.columnas):
            ubic = dict(relx=x[n], **Fm.ubic_ColsItemasEdit)
            col.place(relwidth=anchuras[n], **gf(ubic))

        símismo.cj_cols.pack(**gf(Fm.ubic_CjColsItemas))
        símismo.cj_bts.pack(**gf(Fm.ubic_CjBtsItemas))
Exemplo n.º 3
0
    def __init__(símismo,
                 pariente,
                 texto,
                 límites,
                 prec,
                 ubicación,
                 tipo_ubic,
                 comanda=None,
                 valor_inicial=None):
        símismo.cj = tk.Frame(pariente, **Fm.formato_cajas)
        símismo.comanda = comanda
        if valor_inicial is None:
            valor_inicial = (límites[0] + límites[1]) / 2
        símismo.valor_inicial = valor_inicial

        símismo.val = símismo.valor_inicial

        símismo.etiq = tk.Label(símismo.cj, text=texto, **Fm.formato_EtiqCtrl)

        etiq_inic = tk.Label(símismo.cj,
                             text=límites[0],
                             **Fm.formato_EtiqNúmEscl)
        símismo.escl = CosoEscala(símismo,
                                  límites,
                                  val_inic=valor_inicial,
                                  prec=prec)
        etiq_fin = tk.Label(símismo.cj,
                            text=límites[1],
                            **Fm.formato_EtiqNúmEscl)

        símismo.etiq.pack(**gf(Fm.ubic_EtiqEscl))
        etiq_inic.pack(**gf(Fm.ubic_EtiqNúmEscl))
        símismo.escl.pack(**gf(Fm.ubic_Escl))
        etiq_fin.pack(**gf(Fm.ubic_EtiqNúmEscl))

        símismo.ingr = IngrNúm(símismo.cj,
                               nombre=None,
                               límites=límites,
                               val_inic=valor_inicial,
                               prec=prec,
                               ubicación=gf(Fm.ubic_CampoIngrEscl),
                               tipo_ubic='pack',
                               comanda=símismo.cambio_ingr)

        if tipo_ubic == 'pack':
            símismo.cj.pack(**ubicación)
        elif tipo_ubic == 'place':
            símismo.cj.place(**ubicación)
Exemplo n.º 4
0
def intercambiar(actual, nuevo, dirección):
    dirección = gf(dirección)
    x_act = actual.winfo_x()
    y_act = actual.winfo_y()
    ancho_act = actual.winfo_width()
    altura_act = actual.winfo_height()

    if dirección == 'izquierda':
        nuevo.place(x=(x_act + ancho_act), y=y_act)
        pos_inic = [x_act, x_act + ancho_act]
        distancia = ancho_act
    elif dirección == 'derecha':
        nuevo.place(x=(x_act - ancho_act), y=y_act)
        pos_inic = [x_act, x_act - ancho_act]
        distancia = ancho_act
    elif dirección == 'arriba':
        nuevo.place(x=x_act, y=(y_act + altura_act))
        pos_inic = [y_act, y_act + altura_act]
        distancia = altura_act
    elif dirección == 'abajo':
        nuevo.place(x=x_act, y=(y_act - altura_act))
        pos_inic = [y_act, y_act - altura_act]
        distancia = altura_act
    else:
        raise ValueError

    nuevo.lift()
    deslizar([actual, nuevo],
             pos_inic,
             dirección,
             distancia,
             paso=0.025,
             tiempo=0.5)
Exemplo n.º 5
0
    def gen_encbz(símismo, nombres_cols, anchuras):
        cj_encbz = tk.Frame(símismo, **Fm.formato_cajas)

        ancho_bts = Fm.ancho_cj_bts_itemas
        x = [-ancho_bts * n / len(anchuras) for n in range(len(anchuras))]
        relx = [sum(anchuras[:n]) for n in range(len(anchuras))]
        ajust_ancho = [0] * (len(anchuras) - 1) + [ancho_bts]
        cols = []
        for n, col in enumerate(nombres_cols):
            ubic = dict(relx=relx[n], x=x[n], **Fm.ubic_ColsEncbzLst)
            cols.append(
                tk.Label(cj_encbz, text=col, **gf(Fm.formato_EtiqEncbzLst)))
            cols[-1].place(width=ajust_ancho[n],
                           relwidth=anchuras[n],
                           **gf(ubic))

        cj_encbz.place(**gf(Fm.ubic_EncbzLstItemas))
Exemplo n.º 6
0
    def __init__(símismo,
                 pariente,
                 opciones,
                 ubicación,
                 tipo_ubic,
                 nombre=None,
                 comanda=None,
                 texto_opciones=None,
                 inicial='',
                 formato_bt=Fm.formato_BtMn,
                 formato_mn=Fm.formato_MnMn,
                 ancho=15):
        símismo.opciones = opciones
        if texto_opciones is None:
            texto_opciones = opciones
        símismo.conv = {}

        símismo.comanda = comanda

        símismo.val_inicial = inicial
        símismo.var = tk.StringVar()

        símismo.val = inicial
        símismo.exclusivos = []

        cj = tk.Frame(pariente, **Fm.formato_cajas)

        if nombre is not None:
            símismo.Etiq = tk.Label(cj, text=nombre, **Fm.formato_EtiqCtrl)
            símismo.Etiq.pack(**gf(Fm.ubic_EtiqMenú))

        símismo.MenúOpciones = tk.OptionMenu(cj, símismo.var, '')
        símismo.MenúOpciones.config(takefocus=True)
        símismo.refrescar(opciones, texto_opciones)
        símismo.var.trace('w', símismo.acción_cambió)

        símismo.MenúOpciones.config(width=ancho, **formato_bt)
        símismo.MenúOpciones['menu'].config(**formato_mn)

        símismo.MenúOpciones.pack(**gf(Fm.ubic_Menú))

        if tipo_ubic == 'pack':
            cj.pack(**ubicación)
        elif tipo_ubic == 'place':
            cj.place(**ubicación)
Exemplo n.º 7
0
    def __init__(símismo,
                 pariente,
                 ubicación,
                 tipo_ubic,
                 encabezado=False,
                 formato_cj=Fm.formato_CjLstItemas):
        super().__init__(pariente, **formato_cj)
        símismo.ancho = ubicación['width']
        símismo.objetos = {}
        símismo.itemas = []

        ubic_tela = gf(Fm.ubic_TlLstItemas.copy())
        if encabezado:
            ubic_tela['y'] = Fm.ubic_EncbzLstItemas['height']
            ubic_tela['height'] = -Fm.ubic_EncbzLstItemas['height']
        símismo.Tela = tk.Canvas(símismo, **Fm.formato_TlLstItemas)
        símismo.Tela.place(**ubic_tela)
        símismo.Caja = tk.Frame(símismo.Tela, **Fm.formato_cajas)
        símismo.BaraDesp = tk.Scrollbar(símismo.Tela,
                                        orient="vertical",
                                        command=símismo.Tela.yview)
        símismo.Tela.configure(yscrollcommand=símismo.BaraDesp.set)

        símismo.BaraDesp.pack(**gf(Fm.ubic_BaraDesp))

        if Fm.IzqaDerech:
            x = 0
        else:
            x = 20
        símismo.Tela.create_window(x,
                                   1,
                                   window=símismo.Caja,
                                   tags="self.frame",
                                   width=símismo.ancho - 20,
                                   **Fm.ubic_CjTl)

        símismo.Caja.bind("<Configure>", símismo.ajust_auto)

        if tipo_ubic == 'pack:':
            símismo.pack(**ubicación)
        elif tipo_ubic == 'place':
            símismo.place(**ubicación)
Exemplo n.º 8
0
    def __init__(símismo,
                 pariente,
                 nombre,
                 val_inic,
                 comanda,
                 ubicación,
                 tipo_ubic,
                 ancho,
                 orden='texto'):
        símismo.comanda = comanda
        símismo.val_inic = val_inic

        símismo.var = tk.StringVar()
        símismo.var.set(símismo.val_inic)
        símismo.var.trace('w', símismo.acción_cambió)

        símismo.val = val_inic

        cj = tk.Frame(pariente, **Fm.formato_cajas)

        símismo.CampoIngr = tk.Entry(cj,
                                     textvariable=símismo.var,
                                     width=ancho,
                                     **Fm.formato_CampoIngr)

        if nombre is not None:
            símismo.Etiq = tk.Label(cj, text=nombre, **Fm.formato_EtiqCtrl)

        if orden is 'texto':
            if nombre is not None:
                símismo.Etiq.pack(**gf(Fm.ubic_EtiqIngrNúm))
            símismo.CampoIngr.pack(**gf(Fm.ubic_CampoIngrEscl))
        else:
            símismo.CampoIngr.pack(**gf(Fm.ubic_CampoIngrEscl))
            if nombre is not None:
                símismo.Etiq.pack(**gf(Fm.ubic_EtiqIngrNúm))

        if tipo_ubic == 'pack':
            cj.pack(**ubicación)
        elif tipo_ubic == 'place':
            cj.place(**ubicación)
Exemplo n.º 9
0
def quitar(actual, dirección):
    dirección = gf(dirección)
    x_act = actual.winfo_x()
    y_act = actual.winfo_y()
    ancho_act = actual.winfo_width()
    altura_act = actual.winfo_height()

    if dirección == 'izquierda' or dirección == 'derecha':
        pos_inic = [x_act]
        distancia = ancho_act
    elif dirección == 'arriba' or dirección == 'abajo':
        pos_inic = [y_act]
        distancia = altura_act
    else:
        raise ValueError

    deslizar([actual], pos_inic, dirección, distancia, paso=0.025, tiempo=.5)
    actual.lower()
Exemplo n.º 10
0
 def añadir(símismo, itema):
     símismo.itemas.append(itema)
     itema.pack(**gf(Fm.ubic_CjItemas))