Saltar al contenido

¿Cómo elimino el borde gris claro alrededor de mi widget de Canvas?

Posterior a consultar con expertos en este tema, programadores de diversas ramas y profesores dimos con la respuesta a la pregunta y la compartimos en esta publicación.

Solución:

Sección 6.8 ¿Por qué el lienzo no parece comenzar en 0,0? de las preguntas frecuentes sobre el uso de Tk describe el fenómeno.

Pude eliminar el artefacto del borde con ligeros cambios en la fuente publicada...

Cambia esto:

w = Canvas(master, width=150, height=40, bd=0, relief='ridge')
w.pack()

a:

w = Canvas(master, width=150, height=40, bd=0, highlightthickness=0, relief='ridge')
w.pack()

y esto:

x0 = 2
y0 = 2
x1 = 151
y1 = 2

a:

x0 = 0
y0 = 0
x1 = 150
y1 = 0

Curiosamente, el "borderwidth" attribute no hizo una diferencia, pero lo dejé por el Preguntas más frecuentes.

Correr w.config() inmediatamente después de la Canvas declaración de inicialización mostró los valores predeterminados para ser 2 por highlightthickness y 0 por border width.

La respuesta corta es que el lienzo tiene dos componentes que afectan los bordes: el borde (borderwidth attribute) y resalte el anillo (highlightthickness attribute).

Si tiene un ancho de borde de cero y un grosor de resaltado de cero, las coordenadas del lienzo comenzarán en 0,0. De lo contrario, estos dos componentes del lienzo infringen el espacio de coordenadas.

Lo que hago con más frecuencia es establecer estos attributes a cero. Luego, si realmente quiero un borde, pondré ese lienzo dentro de un marco y le daré un borde al marco.

Te mostramos las reseñas y valoraciones de los lectores

Agradecemos que desees respaldar nuestro trabajo escribiendo un comentario o puntuándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.