Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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图像幻灯片的空白GUI_Python_Image_Tkinter_Slideshow_Tk - Fatal编程技术网

带有python图像幻灯片的空白GUI

带有python图像幻灯片的空白GUI,python,image,tkinter,slideshow,tk,Python,Image,Tkinter,Slideshow,Tk,我无法在幻灯片放映期间显示图像。当update_图像的前四行被注释掉时,将显示第一个图像(1.png)。但是当它没有被评论时,我得到了一个空白的GUI。有人有什么建议吗 import Tkinter import Image, ImageTk class App(): def __init__(self): self.root = Tkinter.Tk() image1=Image.open('C:\Use

我无法在幻灯片放映期间显示图像。当update_图像的前四行被注释掉时,将显示第一个图像(1.png)。但是当它没有被评论时,我得到了一个空白的GUI。有人有什么建议吗

    import Tkinter
    import Image, ImageTk

    class App():
        def __init__(self):
            self.root = Tkinter.Tk()
            image1=Image.open('C:\Users\Jason\Desktop\ScreenShots\\1.png')
            self.root.geometry('%dx%d' % (image1.size[0],image1.size[1]))
            tkpi=ImageTk.PhotoImage(image1)
            label_image=Tkinter.Label(self.root, image=tkpi)
            label_image.place(x=0,y=0,width=image1.size[0],height=image1.size[1])

            self.update_image()
            self.root.mainloop()


        def update_image(self):
            image1=Image.open('C:\Users\Jason\Desktop\ScreenShots\\2.png')
            tkpi=ImageTk.PhotoImage(image1)
            label_image=Tkinter.Label(self.root, image=tkpi)
            label_image.place(x=0,y=0,width=image1.size[0],height=image1.size[1])

            print 'slide'
            self.root.after(500, self.update_image)

    app=App()

可能发生的情况是图像对象正在被垃圾收集,因为它是
update\u image
范围内的本地对象。尝试将图像对象保存为类的属性(例如:
self.tkpi

顺便说一句,如果你正在做一个幻灯片放映,一次只放映一张图片,那么没有理由在每次创建新图片时都创建一个新标签。创建一个新图像,然后将其指定给现有标签图像就足够了

我还建议您使用
grid
pack
而不是
place
<代码>位置在某些情况下很有用,但通常最好使用其他两个几何体管理器