dragov 发表于 2024-9-15 17:19:38

Tkinter PhotoImage问题


from tkinter import *
root=Tk()
p=PhotoImage(file="f://f1.png")
p=PhotoImage(file="f://2.png")
a=["123","456"]
for i in range(2):
      Button(root,text=a,image=p,compound=bottom).pack()
mainloop()

报错信息:NameError: Name "p" is not defined .

FishC 发表于 2024-9-15 17:24:05

问题出在你的代码中定义变量 `p` 的位置。你在赋值的时候覆盖了 `p`,因此在循环中 `p` 没有被正确引用。 另外,你的 `text` 变量 `a` 没有定义。以下是修正后的代码:

from tkinter import *

root = Tk()

# 设置初始图片
p = PhotoImage(file="f://f1.png")

# 定义按钮文字
a = "按钮"

# 创建按钮
for i in range(2):
    Button(root, text=a, image=p, compound=BOTTOM).pack()

# 运行主循环
mainloop()

请注意:

1. `p = PhotoImage(file="f://f1.png")` 和 `p = PhotoImage(file="f://2.png")` 只能保留一个,因为后者会覆盖前者。
2. `a` 应该赋予初始值。
3. `compound=BOTTOM` 是用来设置图片和文字的相对位置。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-9-15 17:24:19

p=[PhotoImage(file="f://f1.png"),
PhotoImage(file="f://2.png")]

某一个“天” 发表于 2024-9-15 17:24:47

记得换成英文符号
页: [1]
查看完整版本: Tkinter PhotoImage问题