首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从tkinter的循环中在网格中显示图像

如何从tkinter的循环中在网格中显示图像
EN

Stack Overflow用户
提问于 2019-05-25 17:42:53
回答 1查看 711关注 0票数 0

我想要显示图像的行和columns...row应该是4...the的,图像的数量将是随机的。

代码语言:javascript
运行
复制
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()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-25 18:43:53

网格几何管理器将小部件放在一个二维表中。主小部件被分成多个行和列,结果表中的每个“单元”都可以容纳一个小部件。您可以阅读更多关于它的这里

要限制使用的行数,只需跟踪放置图像的位置即可。

代码语言:javascript
运行
复制
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()

这将使您的图像按以下顺序排列:

代码语言:javascript
运行
复制
1 5 9
2 6 10
3 7 ...
4 8 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56307270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档