我要在行和列中显示图像...行应为4 ...图像的数量将是随机的..
import tkinter as tk
from PIL import Image, ImageTk
from urllib.request import urlopen
from io import BytesIO
root = tk.Tk()
#number of urls will be random
URL_list = ["urls","urls","urls"]
for url in URL_list:
u = urlopen(url)
raw_data = u.read()
u.close()
im = Image.open(BytesIO(raw_data))
photo = ImageTk.PhotoImage(im)
label = tk.Label(image=photo)
label.image = photo
label.pack()
root.mainloop()
答案 0 :(得分:2)
网格几何管理器将小部件放在二维表中。主窗口小部件分为许多行和列,结果表中的每个“单元格”都可以容纳一个窗口小部件。您可以详细了解here。
要限制使用的行数,您只需跟踪放置图像的位置即可。
import tkinter as tk
from PIL import Image, ImageTk
from urllib.request import urlopen
from io import BytesIO
root = tk.Tk()
#number of urls will be random
URL_list = ["urls","urls","urls"]
MAX_ROWS = 4
current_row = 0
current_column = 0
for url in URL_list:
u = urlopen(url)
raw_data = u.read()
u.close()
im = Image.open(BytesIO(raw_data))
photo = ImageTk.PhotoImage(im)
label = tk.Label(image=photo)
label.image = photo
label.grid(row = current_row, column = current_column)
current_row += 1
if (current_row >= 4):
current_column += 1
current_row = 0
root.mainloop()
这将按照以下顺序放置图像:
1 5 9
2 6 10
3 7 ...
4 8