将图片与 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):
        """ 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()

问题是画布只显示背景,不显示图片,你能告诉我有什么问题吗?

注意:按钮绿色.gif与我的.py位于同一文件夹中

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

应该是...

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

你需要file= 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()

最新更新