TODOPIC

Lenguajes de programación para PC => Python => Mensaje iniciado por: Daniel1952 en 11 de Septiembre de 2022, 13:05:30

Título: Obtener el ancho en píxeles de una palabra en Python.
Publicado por: Daniel1952 en 11 de Septiembre de 2022, 13:05:30
Hola gente, ¿cómo están? Hola Picuino, necesitaría saber si se puede obtener
alguna relación entre píxeles y palabra.-
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, no muestro el código porque no lo creo necesario
y además me parece que no te llevas muy bien con tkinter, jajajajaja.-

Slds. Daniel ☕☕☕
Título: Re:Obtener el ancho en píxeles de una palabra en Python.
Publicado por: Picuino en 12 de Septiembre de 2022, 17:20:09
Hola Daniel. Como bien dices no conozco tkinter. Apenas he hecho algunas pruebas con ese entorno y tendría que ponerme a investigar. El problema es que ahora estoy con mucha tarea que me tiene ocupado.

Prueba a buscar en google traduciendo al inglés. Por ejemplo:
https://www.tutorialspoint.com/how-to-get-the-width-of-the-tkinter-widget

https://stackoverflow.com/questions/14887610/specify-the-dimensions-of-a-tkinter-text-box-in-pixels
Título: Re:Obtener el ancho en píxeles de una palabra en Python.
Publicado por: Daniel1952 en 13 de Septiembre de 2022, 16:26:33
Hola Picuino, buen día, dejo lo que pude lograr, si bien es bastante rebuscado
parece ser que la medida en píxeles no funciona con un string, solamente
sirve para los widget, muy buenas las páginas que me sugeriste.

Código: Python
  1. import tkinter as tk
  2. from tkinter import ttk
  3.  
  4. def pixeles():
  5.     measure = tk.Label(ventana, font = ("Vardana", 12), text = var.get())
  6.     measure.place(x=5, y=8)
  7.     measure.update_idletasks()
  8.     width = measure.winfo_width()
  9.     pixeles = f'"{var.get()}" tiene una ancho de {width} pixeles'    
  10.     measure.config(text = pixeles)
  11.     measure.update_idletasks()
  12.     w = measure.winfo_width() + 10
  13.     h = 150
  14.     x = 700
  15.     y = 500
  16.     ventana.geometry('%dx%d+%d+%d' % (w, h, x, y))
  17.  
  18.  
  19.  
  20. ventana = tk.Tk()
  21. ventana.geometry("300x150+700+500")
  22.  
  23. var = tk.StringVar()
  24. medir = ttk.Entry(ventana, font = ("Vardana", 12), width=30,
  25.               textvariable=var)
  26. medir.place(x=10, y=40)
  27.  
  28. boton = ttk.Button(ventana, text="Medir",
  29.        command=pixeles)
  30. boton.place(x=110, y=80, width=80, height=40)
  31.  
  32. medir.focus()
  33.  
  34. ventana.mainloop()
Slds. Daniel ☕☕☕