将图像添加到tkinter gui

时间:2014-11-20 20:50:58

标签: python user-interface tkinter

我是Tkinter的新手。我想创建一个GUI,可以支持嵌入音频文件,还有一个背景图像。我无休止地尝试安装pygame无济于事。我似乎无法弄清楚为什么它没有正确安装所以在这一点上我只是想找到最简单的方法来拥有这两个选项。下面是我尝试使用画布小部件显示背景图像。但是,我总是得到一个错误,我的变量没有定义。我真的很感激我对错误的反馈,以及任何有用的tkinter教程,其中不仅仅涉及基础知识。提前致谢

from Tkinter import *   

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

class Application(Frame):

    def __init__(self, master):
        #initialize the frame
        Frame.__init__(self, master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):
        self.can = Canvas(root, width=160, height=160, bg='white')
        self.pic = PhotoImage(file='speaker.gif')
        self.item = can.create_image(80, 80, image=pic)

app = Application(root)

#kick off event loop
root.mainloop()

1 个答案:

答案 0 :(得分:1)

每次要在其中一个方法中使用类的属性时,都需要在其前面添加self.

self.item = self.can.create_image(80, 80, image=self.pic)
#           ^^^^^                               ^^^^^

否则,Python会将名称视为函数的本地名称,并在找不到它们时引发异常。

此外,您忘记在画布小部件上调用grid

self.can = Canvas(root, width=160, height=160, bg='white')
self.can.grid(...)

至于Tkinter上的资源,您可以查看以下内容: