我想将照片插入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()
我想同时在行和列中显示这些图片。 例如,如果row = 3,column = 3,则输出应为:
[图片] [图片] [图片]
[图片] [图片] [图片]
[图片] [图片] [图片]
答案 0 :(得分:2)
尝试:
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 geometry manager比pack geometry manager更轻松地完成您想要的事情。图像逐行放置。
grid
接受两个名为row
和column
的参数,它们是在容器表面上理想绘制的2D网格中小部件的索引(从0开始)。 tkinter
可以自动确定网格的尺寸并管理尺寸。