from tkinter import* root = Tk() logo = PhotoImage(file="lili.PNG") photo = ImageTk.PhotoImage(image) image = tk.Label(root, image=logo) image.pack() talks = [ "你想干什么?", "别再点我了啊!", "我已经告诉你我不会给你打折了!", "好了好了,别点了,我知道你很无聊。", "你还点啊?我警告你,我可是会生气的!", "唉,你真是让人无语。", ] def on_click(event): # 判断点击位置是否在丽丽的头像范围内 if 90 < event.x < 170 and 20 < event.y < 90: # 更改丽丽的对话内容 talk_idx = len(label["text"].split("\n")) - 1 if talk_idx >= len(talks): talk_idx = 0 label["text"] += "\n" + talks[talk_idx] # 绑定点击事件处理函数 label.bind("<Button-1>", on_click) root.mainloop()哪里错误帮我修改一下
时间: 2024-03-09 20:47:40 浏览: 135
Python库 | easy_tk-1.0.7.1.tar.gz
在代码中,第6行的 `photo = ImageTk.PhotoImage(image)` 应该放在第5行 `image = tk.Label(root, image=logo)` 的后面,因为 `image` 对象需要在 `PhotoImage` 对象 `logo` 创建后才能使用。修改后的代码如下:
```
from tkinter import *
from PIL import ImageTk
root = Tk()
logo = PhotoImage(file="lili.PNG")
image = Label(root, image=logo)
image.pack()
talks = [
"你想干什么?",
"别再点我了啊!",
"我已经告诉你我不会给你打折了!",
"好了好了,别点了,我知道你很无聊。",
"你还点啊?我警告你,我可是会生气的!",
"唉,你真是让人无语。",
]
def on_click(event):
# 判断点击位置是否在丽丽的头像范围内
if 90 < event.x < 170 and 20 < event.y < 90:
# 更改丽丽的对话内容
talk_idx = len(label["text"].split("\n")) - 1
if talk_idx >= len(talks):
talk_idx = 0
label["text"] += "\n" + talks[talk_idx]
# 创建 Label 对象
label = Label(root, text="")
# 绑定点击事件处理函数
image.bind("<Button-1>", on_click)
# 显示对话框
label.pack()
root.mainloop()
```
现在代码应该能够正常运行了。
阅读全文