From 886730cc381bc3d8e4ff5c9d875c67f2b3c573ab Mon Sep 17 00:00:00 2001 From: nachintoch Date: Fri, 11 Jun 2021 17:15:24 -0500 Subject: [PATCH 1/3] Resuelto issue #21 --- src/requex/iu.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/requex/iu.py b/src/requex/iu.py index 4035155..cd8f46a 100644 --- a/src/requex/iu.py +++ b/src/requex/iu.py @@ -162,6 +162,7 @@ class ConfigIU: def crea_ventana(titulo, raiz=None): ventana = ToplevelCentrado(raiz) if raiz else VentanaCentrada() + ventana.resizable(width=False, height=False) ventana.title(titulo) ventana.tk.call('wm', 'iconphoto', ventana._w, ConfigIU.carga_imagen(ventana, 'icono_requex-48.png')) -- GitLab From de6e4f73c47191f6d5cdfe75c38960fcf7f706a0 Mon Sep 17 00:00:00 2001 From: nachintoch Date: Fri, 11 Jun 2021 18:04:07 -0500 Subject: [PATCH 2/3] Resuelto issue #43 --- src/requex/__init__.py | 2 +- src/requex/iu.py | 38 ++++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/requex/__init__.py b/src/requex/__init__.py index 53caca1..b2f0294 100755 --- a/src/requex/__init__.py +++ b/src/requex/__init__.py @@ -778,7 +778,7 @@ class Requex: estado = 'disabled' if deshabilitar_alta else 'normal' botonA = ConfigIU.construye_boton( ventana, '{} {}'.format(etiqueta_alta, tipo_entidad), alta, - row, estado=estado, padx=30, sticky='E') + row, estado=estado, padx=50, sticky='E') self.__botones_iu['alta'] = botonA if baja: botonB = ConfigIU.construye_boton(ventana, 'Eliminar', baja, diff --git a/src/requex/iu.py b/src/requex/iu.py index cd8f46a..67eea3c 100644 --- a/src/requex/iu.py +++ b/src/requex/iu.py @@ -173,15 +173,11 @@ class ConfigIU: ConfigIU.__verifica_estilo(ventana) lista = ttk.Treeview(ventana, columns=nombres_columnas, selectmode=tk.BROWSE, height=no_renglones) - lista.column('#0', width=0) valores.sort() - tipografia = font.Font(family='Helvetica', size=11, weight='normal') - ancho_min = ConfigIU.__calcula_ancho_minimo(nombres_columnas, - tipografia) - ancho_columnas, relacion_indice_lista_id =\ + ancho_min, ancho_columnas, relacion_indice_lista_id =\ ConfigIU.__llena_lista_seleccionable( - lista, valores, nombres_columnas, tipografia) + lista, valores, nombres_columnas) ConfigIU.__configura_lista_seleccionable( ventana, lista, nombres_columnas, ancho_min, ancho_columnas, evento_seleccion) @@ -368,24 +364,29 @@ class ConfigIU: foreground=ConfigIU.fixed_map('foreground'), background=ConfigIU.fixed_map('background')) - def __calcula_ancho_minimo(nombres_columnas, tipografia): + def __calcula_ancho_minimo(nombres_columnas, ancho_inicial, tipografia): ancho_min = {} for nombre in nombres_columnas: - ancho_min[nombre] = math.ceil(tipografia.measure(nombre) * 1.75) + ancho = math.ceil(tipografia.measure(nombre) * 1.75) + ancho_min[nombre] = ancho_inicial\ + if ancho < ancho_inicial else ancho return ancho_min - def __llena_lista_seleccionable(lista, valores, nombres_columnas, - tipografia): + def __llena_lista_seleccionable(lista, valores, nombres_columnas): + tipografia = font.Font(family='Helvetica', size=11, weight='normal') no_columnas = len(nombres_columnas) - ancho_max = tipografia.measure('l' * ConfigIU.ancho_ventana) - ancho_max = math.floor(ancho_max / no_columnas) + ancho_inicial = tipografia.measure('l' * ConfigIU.ancho_ventana) + ancho_inicial = math.ceil(ancho_inicial / no_columnas) + ancho_min = ConfigIU.__calcula_ancho_minimo(nombres_columnas, + ancho_inicial, tipografia) relacion_indice_lista_id = {} ancho_columnas = ConfigIU.__inicializa_ancho_columnas(nombres_columnas) i = 0 for id, valor, completo in valores: valor = list(valor) ancho_columnas = ConfigIU.__calcula_ancho_columnas( - ancho_columnas, nombres_columnas, ancho_max, valor, tipografia) + ancho_columnas, nombres_columnas, ancho_inicial, valor, + tipografia) relacion_indice_lista_id[i] = id color_fondo = 'green' if completo else 'orange' lista.insert('', i, i, values=valor, tags=[color_fondo]) @@ -394,7 +395,7 @@ class ConfigIU: lon_excedente = 0 columnas_excedentes = [] for columna, ancho in ancho_columnas.items(): - excedente = ancho_max - ancho + excedente = ancho_inicial - ancho if excedente > 0: lon_excedente += excedente else: @@ -404,7 +405,7 @@ class ConfigIU: if no_columnas_excedentes else 0 for columna in columnas_excedentes: ancho_columnas[columna] += lon_excedente - return ancho_columnas, relacion_indice_lista_id + return ancho_min, ancho_columnas, relacion_indice_lista_id def __configura_lista_seleccionable( ventana, lista, nombres_columnas, ancho_min, ancho_columnas, @@ -423,6 +424,7 @@ class ConfigIU: scroll.grid(row=1, column=3, sticky='NSW') lista.configure(yscrollcommand=scroll.set) scroll.config(command=lista.yview) + lista.column('#0', width=0) def __formatea_atributo(atributo): if atributo is None: @@ -435,12 +437,12 @@ class ConfigIU: ancho_columnas[columna] = 0 return ancho_columnas - def __calcula_ancho_columnas(ancho_columnas, nombres_columnas, ancho_max, - valor_actual, tipografia): + def __calcula_ancho_columnas(ancho_columnas, nombres_columnas, + ancho_inicial, valor_actual, tipografia): for j, columna in enumerate(nombres_columnas): valor_actual[j] = ConfigIU.__formatea_atributo(valor_actual[j]) ancho = ancho_columnas[columna] - if ancho == ancho_max: + if ancho == ancho_inicial: continue ancho_actual = tipografia.measure(valor_actual[j]) + 10 if ancho_actual > ancho: -- GitLab From c91350483674fe845bb703454a13224091597bad Mon Sep 17 00:00:00 2001 From: nachintoch Date: Fri, 11 Jun 2021 18:04:47 -0500 Subject: [PATCH 3/3] =?UTF-8?q?Correcci=C3=B3n=20en=20la=20toma=20del=20pi?= =?UTF-8?q?so=20sobre=20el=20ancho=20m=C3=A1ximo=20de=20ventanas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/requex/iu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/requex/iu.py b/src/requex/iu.py index 67eea3c..19820fb 100644 --- a/src/requex/iu.py +++ b/src/requex/iu.py @@ -376,7 +376,7 @@ class ConfigIU: tipografia = font.Font(family='Helvetica', size=11, weight='normal') no_columnas = len(nombres_columnas) ancho_inicial = tipografia.measure('l' * ConfigIU.ancho_ventana) - ancho_inicial = math.ceil(ancho_inicial / no_columnas) + ancho_inicial = math.floor(ancho_inicial / no_columnas) ancho_min = ConfigIU.__calcula_ancho_minimo(nombres_columnas, ancho_inicial, tipografia) relacion_indice_lista_id = {} -- GitLab