GOOGLE ADS

viernes, 29 de abril de 2022

¿Cómo hacer un fondo de mosaico en un lienzo en python usando tkinter?

esencialmente, este fragmento de código me da una imagen, me gustaría hacerlo de alguna manera para que la imagen se repita en un formato de cuadrícula según la cantidad de columnas que definí. ¿Cómo haría esto usando un bucle for?

fragmento de código:

canvas = Canvas(row, width = ncols*square_width, height = ncols*square_height,
bg = bg_color, bd=0, highlightthickness=0, relief='ridge')
canvas.create_image(0, 0, image = im_Empty, anchor = 'nw')
canvas.update()
canvas.pack()


Solución del problema

Recomendaría simplemente crear un marco y luego colocar estos lienzos en el marco usando la cuadrícula integrada(), a continuación hay un ejemplo funcional de un programa que crea una cuadrícula de lienzos de 5 por 5 usando su función de creación de lienzos (con algunos cambios ):


import tkinter as tk
from tkinter import ttk
def createCanvas(frame,nrow,ncolumn):
ncols = 5
square_width = 5
square_height = 5
bg_color = "red"
im_Empty = tk.PhotoImage(file="gifsample.gif")
canvas = tk.Canvas(frame, width = ncols*square_width, height = ncols*square_height, \
bg = bg_color, bd=0, highlightthickness=0, relief='ridge')
canvas.create_image(0, 0, image = im_Empty, anchor = 'nw')
canvas.update()
canvas.grid(row = nrow, column = ncolumn, sticky = "nsew")
return canvas
root = tk.Tk()
frame = tk.Frame(root)
frame.grid(row = 0, column = 0, sticky = "nsew")
frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)
canvases = dict()
columns = 5
rows = 6
for i in range(rows):
for j in range(columns):
canvases[str(i)+","+str(j)] = createCanvas(frame,i,j)
frame.grid_rowconfigure(i, weight=1)
frame.grid_columnconfigure(j, weight=1)
print(canvases)
root.mainloop()

Tenga en cuenta que creé un diccionario como contenedor para estos lienzos cuadriculados, ya que es posible que desee mantener las referencias almacenadas, pero técnicamente hablando, también puede crear los lienzos sin el dictado.

Además, para mí, la imagen no apareció, pero te dejaré la depuración, ya que no era realmente lo que estabas preguntando.

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...