Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Tkinter margenes text widget
#1
hola,

Estoy haciendo la presentación de un texto con el widget Text, y tengo ciertos problemas con los márgenes.
Los margenes de texto estandar los toma correctamente.
El problema, es cuando trato de insertar una etiqueta, boton, o imagen con unos márgenes definidos en el tag_configure.

Pongo un ejemplo simple, donde se ve el problema (quiero poner la etiqueta con un margen de 45, como el resto del texto):


Código:
from tkinter import *

root = Tk()
caja_texto = Text(root, width=150)
caja_texto.pack()

# creo un identificador/tag para los margenes
caja_texto.tag_configure('var1', lmargin1=45, lmargin2=45)

# el texto de prueba
con1="Postgresql.driver proporciona una interfaz PG-API, postgresql.api, \
a un servidor PostgreSQL utilizando PQ versión 3.0 para facilitar la comunicación. "

con2="Utiliza las funciones extendidas del protocolo para proporcionar \
transmisiones binarias de tipo de datos y declaraciones preparadas en el \
nivel de protocolo para parámetros fuertemente tipados.\n\n"

caja_texto.insert(INSERT,con1, 'var1')
caja_texto.insert(INSERT,con2, 'var1')

# vamos a ver una etiqueta, por sencillez
etiq = Label(caja_texto, text='Etiqueta de Prueba',bd=0, bg='white', \
      fg='blue', font='size 20')
           
# esto funciona
caja_texto.window_create(INSERT, window = etiq)

#esto no funciona
#caja_texto.window_create(INSERT, window = etiq, 'var1')
#caja_texto.window_create(INSERT, window = etiq, ('var1'))

root.mainloop()
Edito:
He solucionado el tema, pero con una solución nada elegante, esto es; muy sucia. La pregunta sigue siendo ¿como poner margenes a un objeto?

Código:
from tkinter import *

root = Tk()
caja_texto = Text(root, width=150)
caja_texto.pack()

# creo un identificador/tag para los margenes
caja_texto.tag_configure('var1', lmargin1=45, lmargin2=45)

# el texto de prueba
con1="Postgresql.driver proporciona una interfaz PG-API, postgresql.api, \
a un servidor PostgreSQL utilizando PQ versión 3.0 para facilitar la comunicación. "

con2="Utiliza las funciones extendidas del protocolo para proporcionar \
transmisiones binarias de tipo de datos y declaraciones preparadas en el \
nivel de protocolo para parámetros fuertemente tipados.\n\n"

caja_texto.insert(INSERT,con1, 'var1')
caja_texto.insert(INSERT,con2, 'var1')

# vamos a ver una etiqueta, por sencillez
etiq = Label(caja_texto, text='Etiqueta de Prueba',bd=0, bg='white', fg='blue', font='size 20')  

# vamos a probar con un texto con un espacio, por si acaso
# el tag de lmargin1 lo hago con 1 menos
# MUY SUCIO
caja_texto.tag_configure('var2', lmargin1=35, lmargin2=35)
caja_texto.insert(INSERT, ' ', 'var2')
 
# esto funciona
caja_texto.window_create(INSERT, window = etiq)

#esto no funciona
#caja_texto.window_create(INSERT, window = etiq, 'var1')
#caja_texto.window_create(INSERT, window = etiq, ('var1'))

root.mainloop()
Responder


Mensajes en este tema
Tkinter margenes text widget - por calvicius - 21-10-2017, 01:24 PM
RE: Tkinter margenes text widget - por Francisco - 21-10-2017, 08:51 PM
RE: Tkinter margenes text widget - por calvicius - 21-10-2017, 09:57 PM
RE: Tkinter margenes text widget - por Francisco - 23-10-2017, 10:17 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)