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()帮我修改正确,要求当你尝试在《魔兽世界》里一直点击“lili。png”时,她的对话会有变化,
时间: 2024-03-09 19:47:45 浏览: 108
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
你可以在 `on_click` 函数中添加一个计数器,来记录连续点击的次数,然后根据相应的次数来更改丽丽的对话内容。修改后的代码如下:
```
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:
# 更新计数器
if hasattr(on_click, "count"):
on_click.count += 1
else:
on_click.count = 1
# 更改丽丽的对话内容
talk_idx = on_click.count % len(talks)
label["text"] = talks[talk_idx]
# 创建 Label 对象
label = Label(root, text="")
label.pack()
# 绑定点击事件处理函数
image.bind("<Button-1>", on_click)
root.mainloop()
```
现在每次点击图片时,丽丽的对话都会根据点击次数变化。当点击次数为偶数时,丽丽会说 "别再点我了啊!",当点击次数为奇数时,丽丽会说 "你想干什么?"。你可以根据自己的需求修改 `talks` 列表中的对话内容。
阅读全文