栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Tkinter PhotoImage

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Tkinter PhotoImage

只要声明图像在哪里都没有关系,只要

  1. 初始化 创建它
    Tk()
    (第一种方法中的问题)
  2. 使用图像时图像 在可变范围内 (第二种方法中的问题)
  3. 图像对象不会 被垃圾收集 (另一个常见 陷阱)

如果您在

main()
方法中定义图片,则必须制作它
global

class MyCustomWindow(Tkinter.frame):    def __init__(self, parent):        Tkinter.frame.__init__(self, parent)        Tkinter.Label(self, image=image).pack()        self.pack(side='top')def main():    root = Tkinter.Tk()    global image # make image known in global scope    image = Tkinter.PhotoImage(file='image.gif')    MyCustomWindow(root)    root.mainloop()if __name__ == "__main__":    main()

或者,您可以

main()
完全删除方法,使其自动成为全局方法:

class MyCustomWindow(Tkinter.frame):    # same as aboveroot = Tkinter.Tk()image = Tkinter.PhotoImage(file='image.gif')MyCustomWindow(root)root.mainloop()

或者,在您的

__init__
方法中声明图像,但请确保使用
self
关键字将其绑定到您的
frame
对象,以便在
__init__
完成操作时不会对其进行垃圾回收:

class MyCustomWindow(Tkinter.frame):    def __init__(self, parent):        Tkinter.frame.__init__(self, parent)        self.image = Tkinter.PhotoImage(file='image.gif')        Tkinter.Label(self, image=self.image).pack()        self.pack(side='top')def main():    # same as above, but without creating the image


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号