elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10
31  Programación / Scripting / Re: Que todos los entry dentro de un frame sean readonly en tkinter. en: 21 Octubre 2022, 02:04 am
Gracias Dani, dejo lo que logre, para ayudarlos a entender, les aclaro
que todas las veces que necesito pasar muchos parámetros a las
funciones los pongo a todos en una lista y este es el código.-

Código
  1.    # lista para pasar los parametros a funciones.
  2.    parametros = []
  3.    parametros.append(servicios)          #  [0] Ventana
  4.    parametros.append(combo_mes)          #  [1] Mes.
  5.    parametros.append(combo_anio)         #  [2] Año.
  6.    parametros.append(caja_entrys)        #  [3] Frame Label y Entrys.
  7.    parametros.append(entrada_epe_monto)  #  [4] EPE monto.
  8.    parametros.append(entrada_epe_kwh)    #  [5] EPE kwh.
  9.    parametros.append(entrada_gas_monto)  #  [6] GAS monto.
  10.    parametros.append(entrada_gas_M3)     #  [7] GAS M3.
  11.    parametros.append(entrada_comuna)     #  [8] Comuna.
  12.    parametros.append(entrada_ceodal)     #  [9] Ceodal.
  13.    parametros.append(entrada_cable)      # [10] Cable Max.
  14.    parametros.append(caja_botones)       # [11] Frame botones.


Código
  1. def agregar(parametros):
  2.    parametros[11].place_forget()
  3.  
  4.    # Activar todos los entrys.
  5.    indice = 4
  6.    while indice < 11:
  7.        parametros[indice].config(state=tk.NORMAL)
  8.        indice += 1

Slds. Daniel ☕☕☕
32  Programación / Scripting / Re: Que todos los entry dentro de un frame sean readonly en tkinter. en: 21 Octubre 2022, 00:17 am
Bueno, ya quedo todo claro, esto me anima a preguntarte,
¿me podés decir si es posible lo que intento?, gracias, abrazo.-
 
Slds. Daniel ☕☕☕
33  Programación / Scripting / Re: Que todos los entry dentro de un frame sean readonly en tkinter. en: 20 Octubre 2022, 20:41 pm
¿Hola, me podrías decir en que contribuye lo que escribiste en relación
con lo que estoy pidiendo ayuda?, gracias…
En ningún momento declararía el identificador de una variable de esa
manera, desconozco como actúa el corrector del foro y además no
me concierne.-

Slds. Daniel ☕☕☕
34  Programación / Scripting / Que todos los entry dentro de un frame sean readonly en tkinter. en: 20 Octubre 2022, 16:40 pm
Bueno, eso, tengo 7 entrys dentro de un frame y quisiera que sean
todos de solo lectura hasta que se pulse el botón <Agregar>, es bastante
tedioso tener que cambiar el estado de cada uno cada vez que se quieran editar.-
Encontré por allí una manera de hacerlo con un bucle for, pero no me convenció.-
Les dejo el programa por si alguien necesita correrlo…

Código
  1. import tkinter as tk
  2. import Funciones
  3. from tkinter import ttk
  4. from functools import partial
  5. from idlelib.tooltip import Hovertip
  6.  
  7. def centrarVentana(root):
  8.    w = 430
  9.    h = 375
  10.  
  11.    ws = root.winfo_screenwidth()
  12.    hs = root.winfo_screenheight()
  13.    x = (ws/2) - (w/2)
  14.    y = (hs/2) - (h/2)
  15.    root.geometry('%dx%d+%d+%d' % (w, h, x, y))
  16.  
  17. def main():
  18.    servicios = tk.Tk()
  19.    servicios.title(" Servicios.")
  20.    centrarVentana(servicios)
  21.  
  22.    # Mensajes(label)
  23.    mensaje_mes = tk.Label(servicios, text="Mes", font=("Vardana", 12))
  24.    mensaje_mes.place(x=15, y=10)
  25.  
  26.    # Llenar el Combobox de los meses.
  27.    meses = Funciones.meses_()
  28.  
  29.    # Llenar combo MES y seleccionar el MES actual.
  30.    combo_mes = ttk.Combobox(servicios, state="readonly",
  31.        width=9, font=("Verdana", 11), values=meses[0])
  32.    combo_mes.place(x=60, y=10)
  33.    combo_mes.bind("<<ComboboxSelected>>")    
  34.  
  35.    combo_mes.set(meses[1])
  36.  
  37.    mensaje_anio = tk.Label(servicios, text="Año", font=("Vardana", 12))
  38.    mensaje_anio.place(x=15, y=50)
  39.  
  40.    combo_mes.set(meses[1])    
  41.  
  42.  
  43.    año = Funciones.anios_()
  44.  
  45.    # Llenar combo AÑO y seleccionar el AÑO actual.
  46.    combo_anio = ttk.Combobox(servicios, state="readonly",
  47.        width=9, font=("Verdana", 11), values=año[0])
  48.    combo_anio.place(x=60, y=50)
  49.    combo_anio.bind("<<ComboboxSelected>>")    
  50.  
  51.    combo_anio.set(año[1])
  52.  
  53.    # Frame para contener los botones
  54.    caja_entrys = tk.Frame(servicios)
  55.    caja_entrys.place(x=5, y=85)
  56.    caja_entrys.config(width="416", height="213")
  57.    caja_entrys.config(bd=5)
  58.    caja_entrys.config(relief="ridge")
  59.  
  60.    mensaje_epe = tk.Label(caja_entrys,
  61.             text="E.P.E - Factura......$                                Kwh....$",
  62.             font=("Vardana", 12))
  63.    mensaje_epe.place(x=5, y=10)
  64.  
  65.    mensaje_gas = tk.Label(caja_entrys,
  66.             text="Gas - Factura.........$                                M3......$",
  67.             font=("Vardana", 12))
  68.    mensaje_gas.place(x=5, y=50)
  69.  
  70.    mensaje_comuna = tk.Label(caja_entrys, text="Comuna..................$",
  71.            font=("Vardana", 12))
  72.    mensaje_comuna.place(x=5, y=90)
  73.  
  74.    mensaje_ceodal = tk.Label(caja_entrys, text="Ceodal....................$",
  75.            font=("Vardana", 12))
  76.    mensaje_ceodal.place(x=5, y=130)
  77.  
  78.    mensaje_cable = tk.Label(caja_entrys, text="Cable Max..............$",
  79.            font=("Vardana", 12))
  80.    mensaje_cable.place(x=5, y=170)
  81.  
  82.    # Entradas(E.P.E-Factura)    
  83.    entrada_epe_monto = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  84.    entrada_epe_monto.place(x=155, y=10)
  85.  
  86.    # Entradas(E.P.E-Kwh)    
  87.    entrada_epe_kwh = tk.Entry(caja_entrys, font=("Vardana", 12), width=5)
  88.    entrada_epe_kwh.place(x=335, y=10)
  89.  
  90.    # Entrada(Gas- Factura)    
  91.    entrada_gas_monto = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  92.    entrada_gas_monto.place(x=155, y=50)
  93.  
  94.    # Entradas(Gas- M3)    
  95.    entrada_gas_M3 = tk.Entry(caja_entrys, font=("Vardana", 12), width=5)
  96.    entrada_gas_M3.place(x=335, y=50)
  97.  
  98.    # Entrada(Comuna)    
  99.    entrada_comuna = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  100.    entrada_comuna.place(x=155, y=90)
  101.  
  102.    # Entrada(Ceodal)    
  103.    entrada_ceodal = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  104.    entrada_ceodal.place(x=155, y=130)
  105.  
  106.    # Entrada(Cable)    
  107.    entrada_cable = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  108.    entrada_cable.place(x=155, y=170)
  109.  
  110.    # Frame para contener los botones
  111.    caja_botones = tk.Frame(servicios)
  112.    caja_botones.place(x=5, y=305)
  113.    caja_botones.config(width="416", height="60")
  114.    caja_botones.config(bd=5)
  115.    caja_botones.config(relief="ridge")
  116.  
  117.    # Botón Agregar
  118.    texto = ''' Agregar movimiento,
  119. no olvide seleccionar la fecha correcta... '''
  120.    boton_agregar = ttk.Button(caja_botones, text="Agregar",
  121.              command=partial(Funciones.agregar, caja_botones))
  122.    boton_agregar.place(x=5, y=5, width=80, height=40)
  123.    hovertip = Hovertip(boton_agregar, texto)
  124.  
  125.    # Botón Estadisticas
  126.    boton_estad = ttk.Button(caja_botones, text="Estadisticas",
  127.              command=partial(Funciones.estadisticas))
  128.    boton_estad.place(x=95, y=5, width=80, height=40)
  129.    hovertip = Hovertip(boton_estad, ' Estadisticas de servicios ')
  130.  
  131.    # Botón Cerrar
  132.    boton_cerrar = ttk.Button(caja_botones, text="Cerrar",
  133.              command=servicios.destroy)
  134.    boton_cerrar.place(x=320, y=5, width=80, height=40)
  135.    hovertip = Hovertip(boton_cerrar, ' Cerrar aplicación. ')
  136.  
  137.    servicios.mainloop()
  138.  
  139.  
  140. if __name__ == '__main__':
  141.    main()
  142.  

Código
  1. from datetime import datetime
  2.  
  3. def meses_():
  4.    meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
  5.             "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
  6.  
  7.    now = datetime.now()
  8.    mes = now.month
  9.    actual = meses[mes-1]
  10.  
  11.    return meses, actual
  12.  
  13. def anios_():
  14.    años = ["2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017",
  15.             "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025",
  16.             "2026", "2027", "2028", "2029", "2030", "2031", "2032", "2033"]
  17.  
  18.    now = datetime.now()
  19.    actual = now.year
  20.  
  21.    returnos, actual
  22.  
  23. def agregar(caja_botones):
  24.    caja_botones.place_forget()
  25.  
  26. def estadisticas():
  27.    print("estadisticas")
  28.  
Desde ya muchas gracias y que tengan todos un lindo jueves...
Slds. Daniel ☕☕☕
35  Programación / Scripting / Re: Seleccionar palabras con espacios en widget TEXT en tkinter… en: 17 Octubre 2022, 01:00 am
«En mi caso no soy adivino…» me hago cargo y reconozco que mostré un código
que solamente yo podría entender, pero tiene mucho que ver con el código que
dejo a continuación(justo en el momento que lo probé y lo iba a subir estaba en eso
cuando leí «reymosquito y 134 Visitantes…», no podía perderme tu ayuda).-

Código
  1. def copiar_al_portapapeles(muestra_codigo):
  2.    texto = muestra_codigo.get("sel.first", "sel.last")
  3.    print(texto)
  4.    clib.copy(texto)

Si te parece que ves algo que pueda proporcionar algún error, espero tu comentario.-
Lo tuyo funciona de maravillas, muchas gracias

Ahora lo implementé así:

Código
  1. def copiar_al_portapapeles(muestra_codigo):
  2.    try:
  3.        texto = muestra_codigo.get("sel.first", "sel.last")
  4.    except:
  5.        texto = muestra_codigo.get("1.0", "end")
  6.  
  7.    clib.copy(texto)

Slds. Daniel ☕☕☕
36  Programación / Scripting / Seleccionar palabras con espacios en widget TEXT en tkinter… en: 16 Octubre 2022, 20:11 pm
Hola gente, ¿cómo están?, demasiado tiempo practicando y no logro
encontrar la solución.

Dejo algunos ejemplos:
«from collections import Counter»
Si arrastro el mouse del inicio al final de «from» ok
Si arrastro el mouse del inicio al final de «from collections» copia solamente «collections»
lo que necesito es que copie el total de lo seleccionado.-
En cuanto al «doble clic» no me hace falta, por lo menos en este programa…
Lo que ocurre también es que seleccionar todo lo tengo implementando
correctamente, pero hay texto que debo extraer solo una parte.-

Código
  1. def copiar_al_portapapeles(t1, muestra_codigo):
  2.    inicio = muestra_codigo.index("insert-1c wordstart")
  3.    final  = muestra_codigo.index("insert -1c wordend")
  4.    texto = muestra_codigo.get(inicio, final)
  5.    print(texto)
  6.    clib.copy(texto)
  7.  

Desde ya gracias por el tiempo que le dediquen, gracias.-
Slds. Daniel ☕☕☕
37  Programación / Scripting / Re: Obtener el número mayor con comprensión de listas en Python. en: 10 Octubre 2022, 20:55 pm
Hola Rey, jajajajaja con vos o aprendo a programar correctamente
o me agarro la frustración del siglo jajajajaj.-
Me está gustando esta manera y me hace comprender que en
programación no es todo copy/paste, gracias...

Slds. Daniel ☕☕☕
38  Programación / Scripting / Re: Obtener el número mayor con comprensión de listas en Python. en: 10 Octubre 2022, 17:40 pm
Hola Rey, gracias por ocuparte.-
Conclusiones:
Esto decía el enunciado en el libro, dentro de comprensión de lista:
EJERCICIOS DE REPASO:
1. Escriba un programa en Python que acepte una lista de valores numéricos y obtenga
su valor máximo sin utilizar la función «built-in» max() (solución).
Entrada: [6, 3, 9, 2, 10, 31, 15, 7]
Salida: 31
¿Cómo querés que lo encare?, no llevaba ni 3 horas(literal) leyendo sobre
comprensión de lista y con esto te doy la razón en cuanto a tu última línea.-

Esto es lo que me ocurre si no lo hago con lista de listas...

Código
  1. a = [10, 13, 454, 66, 44]
  2.  
  3. b = [max(p) for p in a]
  4. print(b)
  5.  

Citar
[...]
b = [max(p) for p in a]
TypeError: 'int' object is not iterable

Slds. Daniel ☕☕☕
39  Programación / Scripting / Re: Obtener el número mayor con comprensión de listas en Python. en: 9 Octubre 2022, 16:05 pm
El que busca encuentra y por fin lo encontré.-
Si lo envolves con corchetes, mayor pasa a ser una lista con un solo elemento,
si haces lo contrario mayor es del tipo int.-
Si invertís el mayor que encuentra el menor de la lista.-

Código
  1. import functools
  2. lista = [10, 13, 54, 661, 1, 44, 5, 222, 7]
  3.  
  4. mayor = [(functools.reduce(lambda a,b: a if (a > b) else b, lista))]
  5.  
  6. print(mayor)
  7.  
Bueno, parece ser todo, feliz domingo... 
Slds. Daniel ☕☕☕
40  Programación / Scripting / Re: Obtener el número mayor con comprensión de listas en Python. en: 9 Octubre 2022, 00:11 am
Gracias por ocuparte, está muy bien y de esa manera se obtiene el máximo
y el mínimo, pero el caso es que estoy estudiando lista por comprensión y
por eso los consulte, gracias, seguiremos buscando...

Slds. Daniel ☕☕☕
Páginas: 1 2 3 [4] 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines