这是我用来观看图片的原因:
from io import BytesIO
import urllib
import urllib.request
import tkinter as tk
from PIL import Image, ImageTk
imagelinks = []
***** Here is a crawler that provides image urls from a webpage into the above list ***
root = tk.Tk()
listvalue = 1
url = (imagelinks[listvalue])
with urllib.request.urlopen(url) as u:
raw_data = u.read()
im = Image.open(BytesIO(raw_data))
image = ImageTk.PhotoImage(im)
label = tk.Label(image=image)
label.pack()
root.mainloop()
一切正常,列表中的图像1显示正常。 我遇到的问题是我想添加一个上一个和下一个按钮,它增加了listvalue- = 1和+ = 1的值,但只是这样做不会工作,因为它不会更新tkinter窗口中的图像。
在我的按钮功能中也尝试使用Tkinter的update(),但也没有太多帮助。
任何人都有关于如何让它发挥作用的一些意见?
更新: 试图将它放在这样的函数中。它将窗口调整到适当的大小,但不会显示图像。
from io import BytesIO
import urllib
import urllib.request
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
link='http://img.khelnama.com/sites/default/files/previewimage/features/2013/Aug/IMG- Reliance_logo(1).jpg'
def showimg(currentimg):
url = currentimg
with urllib.request.urlopen(url) as u:
raw_data = u.read()
im = Image.open(BytesIO(raw_data))
image = ImageTk.PhotoImage(im)
label = tk.Label(image=image)
label.pack()
showimg(link)
root.mainloop()
答案 0 :(得分:0)
您需要将代码检索并在定义中显示图像,并传递要用作参数的列表项。按下按钮,您可以递增或递减索引,并调用您自己的更新功能。
编辑:
试试这个
label = tk.Label()
label.pack()
def showimg(currentimg, label):
url = currentimg
with urllib.request.urlopen(url) as u:
raw_data = u.read()
im = Image.open(BytesIO(raw_data))
image = ImageTk.PhotoImage(im)
label.config(image = image)
showimg(link, label)