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())
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))
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)
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)
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))
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)
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)
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)
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()
def añadir(símismo, itema): símismo.itemas.append(itema) itema.pack(**gf(Fm.ubic_CjItemas))