鱼C论坛

 找回密码
 立即注册
查看: 820|回复: 6

[已解决]【求助】tkinter 报错

[复制链接]
发表于 2020-5-16 22:05:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大神,我跟着小甲鱼老师的案例打,但是却报错了
(我保证 1.gif 是在程序的同级目录下的)

代码:
from tkinter import *

root = Tk()

def callback():
    var.set("我才不信呢~")

root = Tk()

frame1 = Frame(root)
frame2 = Frame(root)

# 创建一个 Label 对象
var = StringVar()
var.set("从入门\n到放弃")
textLabel = Label(frame1, textvariable=var, justify=LEFT)
textLabel.pack(side=LEFT)

# 创建一个图像 Label 对象
photo = PhotoImage(file="1.gif")
imgLabel = Label(frame1, image = photo)
imgLabel.pack(side=RIGHT)

# 添加一个按钮
theButton = Button(frame2, text = "我不会放弃的^_^", command=callback)
theButton.pack()

frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10)

mainloop()
报错信息
Traceback (most recent call last):
  File "C:\Users\lzg99\Desktop\鱼C\python\随便学\tkinter\tk-4.py", line 21, in <module>
    imgLabel = Label(frame1, image = photo)
  File "C:\Users\lzg99\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 3143, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "C:\Users\lzg99\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 2567, in __init__
    self.tk.call(
_tkinter.TclError: image "pyimage1" doesn't exist
最佳答案
2020-5-16 22:15:46
去掉一个 root = Tk() 即可
因为在一个程序中只能存在一个根窗口
from tkinter import *

root = Tk()

def callback():
    var.set("我才不信呢~")


frame1 = Frame(root)
frame2 = Frame(root)

# 创建一个 Label 对象
var = StringVar()
var.set("从入门\n到放弃")
textLabel = Label(frame1, textvariable=var, justify=LEFT)
textLabel.pack(side=LEFT)

# 创建一个图像 Label 对象
photo = PhotoImage(file="1.png")
imgLabel = Label(frame1, image = photo)
imgLabel.pack(side=RIGHT)

# 添加一个按钮
theButton = Button(frame2, text = "我不会放弃的^_^", command=callback)
theButton.pack()

frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10)

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-16 22:12:17 | 显示全部楼层

回帖奖励 +1 鱼币

本帖最后由 weiter 于 2020-5-16 22:18 编辑

删掉上面的 root = Tk()

评分

参与人数 1荣誉 +1 贡献 +1 收起 理由
liuzhengyuan + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 22:14:32 | 显示全部楼层

回帖奖励 +1 鱼币

不应该有问题啊..我再看看

评分

参与人数 1荣誉 +1 贡献 +1 收起 理由
liuzhengyuan + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 22:15:46 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +1 鱼币

去掉一个 root = Tk() 即可
因为在一个程序中只能存在一个根窗口
from tkinter import *

root = Tk()

def callback():
    var.set("我才不信呢~")


frame1 = Frame(root)
frame2 = Frame(root)

# 创建一个 Label 对象
var = StringVar()
var.set("从入门\n到放弃")
textLabel = Label(frame1, textvariable=var, justify=LEFT)
textLabel.pack(side=LEFT)

# 创建一个图像 Label 对象
photo = PhotoImage(file="1.png")
imgLabel = Label(frame1, image = photo)
imgLabel.pack(side=RIGHT)

# 添加一个按钮
theButton = Button(frame2, text = "我不会放弃的^_^", command=callback)
theButton.pack()

frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10)

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 22:16:18 | 显示全部楼层
难不成是因为你写了俩root=Tk() ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 22:18:56 | 显示全部楼层
qiuyouzhi 发表于 2020-5-16 22:16
难不成是因为你写了俩root=Tk() ?

没错哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 22:47:16 | 显示全部楼层

回帖奖励 +1 鱼币

root = Tk()

def callback():
    var.set("我才不信呢~")

root = Tk()
哦吼?

评分

参与人数 1荣誉 +1 贡献 +1 收起 理由
liuzhengyuan + 1 + 1 非常感谢你的回复~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 05:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表