Я делаю одну из моих первых программ, используя python, tkinter и pillow.
Предполагается, что эта программа случайным образом выберет одно из четырех плиточных изображений, создаст изображение и повторите 25 раз. Создание доски 5x5 использование сетки для размещения изображений в квадрате.
Это не то, что произошло, когда я запустил свой код, хотя
Обычно генерируется один или два столбца и 4 строки и не каждая координата заполнена изображением.
И почему-то виден только угол изображения?
Кажется, что центр изображений расположен в верхнем левом углу их сетки.
Вывод может выглядеть примерно так:
X = координата, заполненная изображением
O = координата, заполненная цветом bg
XX
OX
OX
Когда я хочу, чтобы это выглядело так
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
Код, который должен Все изображения выглядят так:
while n < 25:
n = n + 1
number = random.randint(1,4)
if number == 1:
TILE_FLOWER.grid(row = x, column = y)
TILE_FLOWER.create_image(16,16, image = TILE_FLOWER_IMG)
elif number == 2:
TILE_GRASS.grid(row = x, column = y)
TILE_GRASS.create_image(16,16, image = TILE_GRASS_IMG)
elif number == 3:
TILE_STONE.grid(row = x, column = y)
TILE_STONE.create_image(16,16, image = TILE_STONE_IMG)
elif number == 4:
TILE_WATER.grid(row = x, column = y,)
TILE_WATER.create_image(16,16, image = TILE_WATER_IMG)
if x == 5:
x = 0
y = y + 1
else:
x = x + 1
win.mainloop()
Код, определяющий мои холсты, выглядит следующим образом
Они имеют тот же размер, что и изображения, которые я хочу на них нарисовать.
TILE_FLOWER = Canvas(win, height = 80, width = 80)
TILE_GRASS = Canvas(win, height = 80, width = 80)
TILE_STONE = Canvas(win, height = 80, width = 80)
TILE_WATER = Canvas(win, height = 80, width = 80)
И, наконец, код, определяющий изображения, выглядит следующим образом
TILE_FLOWER_IMG = PhotoImage(file = 'Path1.png')
TILE_GRASS_IMG = PhotoImage(file = 'Path2.png')
TILE_STONE_IMG = PhotoImage(file = 'Path3.png')
TILE_WATER_IMG = PhotoImage(file = 'Path4.png')
Надеюсь, то, что я написал, имеет смысл!
И я бы будь супер благодарен, если кто-то может помочь мне исправить этот беспорядок:)