需要支持在Python w/TKinter中显示图像幻灯片
我正试图做一套代码,将打开一个窗口,并显示6个图像序列一遍又一遍,非常快的10秒。这是我的代码,但是程序只是打开一个空白屏幕。我该怎么办需要支持在Python w/TKinter中显示图像幻灯片,python,tkinter,gif,Python,Tkinter,Gif,我正试图做一套代码,将打开一个窗口,并显示6个图像序列一遍又一遍,非常快的10秒。这是我的代码,但是程序只是打开一个空白屏幕。我该怎么办 import time import tkinter as tk root = tk.Tk() root.overrideredirect(True) width = root.winfo_screenwidth() height = root.winfo_screenwidth() root.geometry('%dx%d' % (width*1, hei
import time
import tkinter as tk
root = tk.Tk()
root.overrideredirect(True)
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.geometry('%dx%d' % (width*1, height*1))
def SS_Part1():
image_file_ssp1 = "goat1.gif"
image = tk.PhotoImage(file=image_file_ssp1)
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="black")
canvas.create_image(width*1/2, height*1/2, image=image)
canvas.pack()
def SS_Part2():
image_file_ssp2 = "goat2.gif"
image = tk.PhotoImage(file=image_file_ssp2)
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="black")
canvas.create_image(width*1/2, height*1/2, image=image)
canvas.pack()
def SS_Part3():
image_file_ssp3 = "goat3.gif"
image = tk.PhotoImage(file=image_file_ssp3)
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="black")
canvas.create_image(width*1/2, height*1/2, image=image)
canvas.pack()
def SS_Part4():
image_file_ssp4 = "goat4.gif"
image = tk.PhotoImage(file=image_file_ssp4)
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="black")
canvas.create_image(width*1/2, height*1/2, image=image)
canvas.pack()
def SS_Part5():
image_file_ssp5 = "goat5.gif"
image = tk.PhotoImage(file=image_file_ssp5)
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="black")
canvas.create_image(width*1/2, height*1/2, image=image)
canvas.pack()
def SS_Part6():
image_file_ssp6 = "goat6.gif"
image = tk.PhotoImage(file=image_file_ssp6)
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="black")
canvas.create_image(width*1/2, height*1/2, image=image)
canvas.pack()
t_end = time.time() + 10
while time.time() < t_end:
SS_Part1()
time.sleep(0.05)
SS_Part2()
time.sleep(0.05)
SS_Part3()
time.sleep(0.05)
SS_Part4()
time.sleep(0.05)
SS_Part5()
time.sleep(0.05)
SS_Part6()
root.mainloop()
导入时间
将tkinter作为tk导入
root=tk.tk()
root.overrideredirect(True)
width=root.winfo_screenwidth()
高度=根。winfo_屏幕宽度()
几何体(“%dx%d%”(宽*1,高*1))
def SS_第1部分():
image\u file\u ssp1=“goat1.gif”
image=tk.PhotoImage(文件=image\u文件\u ssp1)
canvas=tk.canvas(根,高度=高度*1,宽度=宽度*1,bg=“黑色”)
画布。创建图像(宽度*1/2,高度*1/2,图像=图像)
canvas.pack()
def SS_第2部分():
image\u file\u ssp2=“goat2.gif”
image=tk.PhotoImage(文件=image\u文件\u ssp2)
canvas=tk.canvas(根,高度=高度*1,宽度=宽度*1,bg=“黑色”)
画布。创建图像(宽度*1/2,高度*1/2,图像=图像)
canvas.pack()
def SS_第3部分():
image\u file\u ssp3=“goat3.gif”
image=tk.PhotoImage(文件=image\u文件\u ssp3)
canvas=tk.canvas(根,高度=高度*1,宽度=宽度*1,bg=“黑色”)
画布。创建图像(宽度*1/2,高度*1/2,图像=图像)
canvas.pack()
def SS_第4部分():
image\u file\u ssp4=“goat4.gif”
image=tk.PhotoImage(file=image\u file\u ssp4)
canvas=tk.canvas(根,高度=高度*1,宽度=宽度*1,bg=“黑色”)
画布。创建图像(宽度*1/2,高度*1/2,图像=图像)
canvas.pack()
def SS_第5部分():
image_file_ssp5=“goat5.gif”
image=tk.PhotoImage(file=image\u file\u ssp5)
canvas=tk.canvas(根,高度=高度*1,宽度=宽度*1,bg=“黑色”)
画布。创建图像(宽度*1/2,高度*1/2,图像=图像)
canvas.pack()
def SS_第6部分():
image\u file\u ssp6=“goat6.gif”
image=tk.PhotoImage(文件=image\u文件\u ssp6)
canvas=tk.canvas(根,高度=高度*1,宽度=宽度*1,bg=“黑色”)
画布。创建图像(宽度*1/2,高度*1/2,图像=图像)
canvas.pack()
t_end=time.time()+10
当time.time()结束时:
第1部分()
睡眠时间(0.05)
第二部分()
睡眠时间(0.05)
第三部分()
睡眠时间(0.05)
第四部分()
睡眠时间(0.05)
第五部分()
睡眠时间(0.05)
第六部分(
root.mainloop()
这些是您的代码中的一些更改,应该可以正常工作
import tkinter as tk
from itertools import cycle
# foreign library, need to installed
from ImageTk import PhotoImage
images = ["first1.jpg", "first2.jpg", "first3.jpg", "first4.jpg"]
photos = cycle(PhotoImage(file=image) for image in images)
def slideShow():
img = next(photos)
displayCanvas.config(image=img)
root.after(50, slideShow) # 0.05 seconds
root = tk.Tk()
root.overrideredirect(True)
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.geometry('%dx%d' % (640, 480))
displayCanvas = tk.Label(root)
displayCanvas.pack()
root.after(10, lambda: slideShow())
root.mainloop()
这是上述代码的面向对象版本,推荐使用。下面的代码将完美地用于全屏幻灯片
from itertools import cycle
import tkinter as tk
# foreign library, need to installed
from ImageTk import PhotoImage
images = [ "first1.jpg", "first2.jpg", "first3.jpg", "first4.jpg"]
class Imagewindow(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.photos = cycle(
PhotoImage(file=image) for image in images
)
self.displayCanvas = tk.Label(self)
self.displayCanvas.pack()
def slideShow(self):
img = next(self.photos)
self.displayCanvas.config(image=img)
self.after(50, self.slideShow) # 0.05 seconds
def run(self):
self.mainloop()
root = Imagewindow()
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.overrideredirect(True)
root.geometry('%dx%d' % (width*1, height*1))
root.slideShow()
root.run()
这些是代码中的一些更改,应该可以正常工作
import tkinter as tk
from itertools import cycle
# foreign library, need to installed
from ImageTk import PhotoImage
images = ["first1.jpg", "first2.jpg", "first3.jpg", "first4.jpg"]
photos = cycle(PhotoImage(file=image) for image in images)
def slideShow():
img = next(photos)
displayCanvas.config(image=img)
root.after(50, slideShow) # 0.05 seconds
root = tk.Tk()
root.overrideredirect(True)
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.geometry('%dx%d' % (640, 480))
displayCanvas = tk.Label(root)
displayCanvas.pack()
root.after(10, lambda: slideShow())
root.mainloop()
这是上述代码的面向对象版本,推荐使用。下面的代码将完美地用于全屏幻灯片
from itertools import cycle
import tkinter as tk
# foreign library, need to installed
from ImageTk import PhotoImage
images = [ "first1.jpg", "first2.jpg", "first3.jpg", "first4.jpg"]
class Imagewindow(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.photos = cycle(
PhotoImage(file=image) for image in images
)
self.displayCanvas = tk.Label(self)
self.displayCanvas.pack()
def slideShow(self):
img = next(self.photos)
self.displayCanvas.config(image=img)
self.after(50, self.slideShow) # 0.05 seconds
def run(self):
self.mainloop()
root = Imagewindow()
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.overrideredirect(True)
root.geometry('%dx%d' % (width*1, height*1))
root.slideShow()
root.run()
我该如何使用图像更改功能?还有,lambda x是什么意思?等等,我会修改我的答案以便更好地理解。你在评论中更改了什么?这些代码可以工作,只需为python 3安装
Imaging Tk
,就可以了。我该如何使用图像更改功能?还有,lambda x是什么意思?等等,为了更好地理解,我将修改我的答案。您在评论中做了哪些更改?这些代码将起作用,只需为python 3安装Imaging Tk
,就可以了。