栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 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号