Как отображать изображения в сетке в Python's Tkinter? - PullRequest
1 голос
/ 08 июня 2019

Я хочу вставить фотографии в сетку в python в tkinter, а затем отобразить эти фотографии в строках и столбцах (количество строк и столбцов зависит от того, что вы вводите)

Я пытался использовать добавляющий список длявставьте изображение в список, но я могу отобразить только один его столбец.

from tkinter import *

w = Tk()

w.geometry('1000x800')

p = 'picture.png'

img = PhotoImage(file=p)

for i in range(0, 5):
    photo_list.append(Label(w, image=img))

for j in range(0, len(photo_list)):
    photo_list[j].pack()

Я хочу отобразить эти изображения как в строках, так и в столбцах.например, если строка = 3, столбец = 3, выходные данные должны быть:

[картинка] [картинка] [картинка] [картинка]

[картинка] [картинка] [картинка]

[изображение] [изображение] [изображение]

1 Ответ

2 голосов
/ 08 июня 2019

Попробуйте с:

nr = 5 #number of rows
nc = 2 #number of columns

photo_list = []

for i in range(nr*nc):
    photo_list.append(Label(w, image=img))
    photo_list[-1].grid(row=i//nc, column=i%nc)

Здесь я использую менеджер геометрии сетки , который позволяет делать то, что вы хотите, проще, чем менеджер геометрии колоды . Изображения располагаются построчно.
grid принимает два аргумента, называемые row и column, которые являются индексами (начиная с 0) виджета в 2D-сетке, идеально нарисованной на поверхности контейнера. tkinter может автоматически определять размеры сетки и управлять размерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...