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


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Relación entre píxeles y fila/columnas en widget TEXT.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Relación entre píxeles y fila/columnas en widget TEXT.  (Leído 2,403 veces)
El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Relación entre píxeles y fila/columnas en widget TEXT.
« en: 10 Septiembre 2022, 20:51 pm »

Hola gente, ¿cómo están? Necesitaría saber si se puede obtener
alguna relación entre píxeles y fila/columnas.-
Para ejemplificar, tengo un widget TEXT y necesito relacionar
el contenido en fila/columnas para establecer las dimensiones
de este y la ventana.-

Bueno, es todo, pase bastante tiempo buscando y nada y eso
que tengo bastante documentación pero nada.-

Código
  1. from tkinter import ttk
  2. import tkinter as tk
  3. import tkinter.scrolledtext as scrolledtext
  4. import codecs
  5.  
  6. def centrar_ventana(root):
  7.    w = 500
  8.    h = 500
  9.  
  10.    ws = root.winfo_screenwidth()
  11.    hs = root.winfo_screenheight()
  12.    x = (ws/2) - (w/2)
  13.    y = (hs/2) - (h/2)
  14.    root.geometry('%dx%d+%d+%d' % (w, h, x, y))
  15.  
  16.  
  17. #Función para pasar de los métodos al correspondiente código.
  18. def boton_codigo(lista_ayuda_secundaria, segunda_Ayuda, lista_codigo, ventana):
  19.    if len(segunda_Ayuda.curselection())!=0:
  20.        listaCodigo = []
  21.        codigoLista = "".join(lista_codigo)
  22.        cont=0
  23.        with codecs.open('codigos.txt', 'r', encoding='utf-8') as archivo:
  24.            for linea in archivo:
  25.                lineaTmp = linea.rstrip('\n,\r')
  26.                tmpLinea = lineaTmp.split(',')
  27.                codigoCodigos = lineaTmp[:4]
  28.                if codigoLista == codigoCodigos:
  29.                    cont += 1
  30.                    listaCodigo.append(tmpLinea[1])
  31.                elif codigoLista != codigoCodigos and cont == 1:
  32.                    break
  33.    else:
  34.        messagebox.showinfo(message="Debe seleccionar un item.", title="!!! Atención !!!")
  35.  
  36.  
  37.    t1 = tk.Toplevel(ventana)
  38.    t1.title("Códigos")
  39.    t1.focus_set()
  40.    centrar_ventana(t1)
  41.    t1.grab_set()
  42.    t1.transient(master=ventana)
  43.  
  44.    muestra_codigo = scrolledtext.ScrolledText(t1, width=58, height = cont+1)
  45.    muestra_codigo.place(x=10, y=10)
  46.  
  47.    for lista in listaCodigo:
  48.        muestra_codigo.insert(tk.INSERT, lista)
  49.  
  50.    muestra_codigo.config(state= tk.DISABLED)
  51.  
  52.    t1.wait_window(t1)

Slds. Daniel ☕☕☕


En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 103



Ver Perfil
Re: Relación entre píxeles y fila/columnas en widget TEXT.
« Respuesta #1 en: 12 Septiembre 2022, 19:23 pm »

Hola gente, ¿ cómo están?
Bueno, al fin logré lo que buscaba, evidentemente es muy rebuscado
lo que muestro a continuación, pero parece ser que no hay otra manera.-
El método winfo_width se puede utilizar solamente para
medir el ancho en píxeles de los widget, pero no funciona con la clase string
que era lo que yo necesitaba.-

Código
  1. from tkinter import *
  2.  
  3. def pixeles():
  4.    measure = Label(ventana, font = ("Vardana", 12), text = var.get())
  5.    measure.place(x=5, y=8)
  6.    measure.update_idletasks()
  7.    width = measure.winfo_width()
  8.    pixeles = f"{var.get()} tiene una ancho de {width} pixeles"
  9.    measure.config(text = pixeles)
  10.  
  11.  
  12.  
  13. ventana = Tk()
  14. ventana.geometry("300x150+700+500")
  15.  
  16. var = StringVar()
  17. medir = Entry(ventana, font = ("Vardana", 12), width=30,
  18.              textvariable=var)
  19. medir.place(x=10, y=40)
  20.  
  21. boton = ttk.Button(ventana, text="Medir",
  22.       command=partial(pixeles))
  23. boton.place(x=110, y=80, width=80, height=40)
  24.  
  25. medir.focus()

Slds. Daniel ☕☕☕


« Última modificación: 12 Septiembre 2022, 20:21 pm por El mas antiguo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines