函数定义中的这些代码行的含义是什么(在tkinter应用程序中)?

rock

以下是所有代码。但我不明白有关的函数定义的两行代码,pLabel.configure(image = photo)pLabel.image = photo这两行是什么意思?当我在Google上搜索它时,它说“保持参考”,但是我不能完全理解“保持参考”。

from tkinter import *
from time import *


fnameList = ["test1.gif", "test2.gif", "test3.gif", "test4.gif", "test5.gif",
"test6.gif", "test7.gif", "test8.gif", "test9.gif",]
photoList = [None] * 9
num = 0


def clickNext() :
    global num
    num += 1
    if num > 8 :
        num = 0
    photo = PhotoImage(file = "chapter10/gif/" + fnameList[num])
    pLabel.configure(image = photo)
    pLabel.image = photo

def clickPrev() :
    global num
    num -= 1
    if num < 0 :
        num = 8
    photo = PhotoImage(file = "chapter10/gif/" + fnameList[num])
    pLabel.configure(image = photo)
    pLabel.image = photo

window = Tk()
window.geometry("700x500")
window.title("album")

btnPrev = Button(window, text = "<< prev", command = clickPrev)
btnNext = Button(window, text = "next >>", command = clickNext)

window.bind("<Up>", clickNext)      # PageUp key click
window.bind("<Down>", clickPrev)    # PageDown key click

photo = PhotoImage(file = "chapter10/gif/" + fnameList[0])
pLabel = Label(window, image = photo)

btnPrev.place(x = 250, y = 10)
btnNext.place(x = 400, y = 10)
pLabel.place(x = 15, y = 50)

window.mainloop()
马蒂诺

第一行是配置Label窗口小部件以显示PhotoImage对象。第二行通过显式添加该图像对象的引用作为小部件的命名属性image存储对该图像对象的引用Label这样一来,PhotoImage当函数返回时,不会自动对象进行垃圾回收(因为这photo是两个函数中的局部变量)。

之所以需configure()要这样做,是因为widget方法不能做到这一点(正如人们所期望的那样,因为这通常是在Python中工作的方式-但tkinter有所不同)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

快速排序应用程序中这些交换代码行的目的是什么?

在数据库程序中,这些代码行的含义和作用是什么?

这些代码行中的%是什么

info.plist中“应用程序需要iPhone环境”键的含义是什么?

对于Web应用程序中的Hibernate 2级缓存,使用SingletonEhCacheRegionFactory与EhCacheRegionFactory的含义是什么?

javascript中此代码(0,函数)的含义是什么

Web应用程序中调用的这些路由样式是什么?

为什么在这个基本的Spring应用程序中没有调用这些函数?

我能知道这些代码行中的错误是什么

Web应用程序中C3P0的这种含义正确吗?这种实现的优缺点是什么?

Segmentation Fault中“代码”的含义是什么

这段代码中list [:]的含义是什么?

NSURLErrorDomain中的代码的含义是什么?

以下代码中\ +的含义是什么

这段代码中$的含义是什么?

Dart控制台应用程序中的退出代码139是什么意思?

Stackify前缀中的未跟踪应用程序代码是什么

Excel 代码中的应用程序定义或对象定义错误

在Swift中从NSDocument应用程序中的行参数打开文件的正确方法是什么?

在异步应用程序中定义解析/拒绝的正确方法是什么

在Spring应用程序中实现自定义验证的最佳方法是什么?

在规则的同一行上定义的变量的含义是什么,这些变量针对先决条件,例如GNU Make中的“ a:x = 0”?

如果应用程序更改了堆栈,则函数式编程中的“纯”是什么意思?

dotnet 应用程序中 DATEFIRST() 函数的作用域是什么

涉及 ReadMode 的函数应用程序中的意外 do 块是什么意思这条消息?

未定义的变量:dbh,我的应用程序中的代码有什么问题?

tkinter应用程序中未定义的标签

在CLI中定义Spark Master与在Spark应用程序代码中定义'master'有什么区别?

编程中源代码和代码的不同含义是什么?