Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要支持在Python w/TKinter中显示图像幻灯片_Python_Tkinter_Gif - Fatal编程技术网

需要支持在Python w/TKinter中显示图像幻灯片

需要支持在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

我正试图做一套代码,将打开一个窗口,并显示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, 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
,就可以了。