Python 将图片与Tkinter集成

Python 将图片与Tkinter集成,python,image,python-2.7,tkinter,Python,Image,Python 2.7,Tkinter,我是Python的乞丐。我试图在窗口中显示Tkinter的图片,但没有成功 这是我的一段代码: import serial import time import sys import os from Tkinter import * root = Tk() root.title("Title") root.geometry("500x500") [...] class Application(Frame): def __init__(self, master):

我是Python的乞丐。我试图在窗口中显示Tkinter的图片,但没有成功

这是我的一段代码:

import serial
import time
import sys
import os

from Tkinter import *

root = Tk()
root.title("Title")
root.geometry("500x500")

[...]

class Application(Frame):

    def __init__(self, master):
        """ Initialize the Frame"""
        Frame.__init__(self,master)
        self.create_widgets()

    def create_widgets(self):

        [...]

        try:
            self.photo=PhotoImage('buttongreen.gif') 
            pic = Canvas(self,width =256, height = 256, bg ='blue')
            pic.grid(row=6, columnspan=2,column=0,padx = 10, pady =10)
            pic.create_image(256,256, image=self.photo)
            """self.panel = Label(self, image = photo)
            self.panel.pack(side = "bottom", fill = "both", expand = "yes")"""
        except:
            print "Unable to load image"
[...]

app = Application(root)
app.grid()

root.mainloop()
问题是画布只显示背景,而不是图片,你能告诉我出了什么问题吗

注意:buttongreen.gif与my.py位于同一文件夹中

self.photo=PhotoImage('buttongreen.gif') 
应该是

self.photo=PhotoImage(file = 'buttongreen.gif')
应该是

self.photo=PhotoImage(file = 'buttongreen.gif')

您需要在
self.photo=PhotoImage(file='buttongreen.gif')

工作示例

from Tkinter import *

root = Tk()
root.title("Title")
root.geometry("500x500")

class Application(Frame):

    def __init__(self, master):
        """ Initialize the Frame"""
        Frame.__init__(self, master)
        self.create_widgets()
        self.grid()

    def create_widgets(self):

        try:
            self.photo = PhotoImage(file='buttongreen.gif') # file =

            pic = Canvas(self, width=256, height=256, bg='blue')
            pic.grid(row=6, columnspan=2, column=0, padx=10, pady=10)

            pic.create_image(256, 256, image=self.photo)

        except:
            print "Unable to load image"

app = Application(root)

root.mainloop()

您需要在
self.photo=PhotoImage(file='buttongreen.gif')

工作示例

from Tkinter import *

root = Tk()
root.title("Title")
root.geometry("500x500")

class Application(Frame):

    def __init__(self, master):
        """ Initialize the Frame"""
        Frame.__init__(self, master)
        self.create_widgets()
        self.grid()

    def create_widgets(self):

        try:
            self.photo = PhotoImage(file='buttongreen.gif') # file =

            pic = Canvas(self, width=256, height=256, bg='blue')
            pic.grid(row=6, columnspan=2, column=0, padx=10, pady=10)

            pic.create_image(256, 256, image=self.photo)

        except:
            print "Unable to load image"

app = Application(root)

root.mainloop()