python - 如何使用按钮执行涉及图像的功能
问题描述
我正在使用老虎机进行一个项目,并尝试制作一个支付率屏幕,它会向您显示您可以滚动的所有图像以及它们增加了多少赌注。为此,我有这个功能和下面显示的按钮
def show_info():
odds = Tk()
odds.title("Odds")
fresh_monky_img_odds = Image.open("freshmonky.gif")
fresh_monky_img_odds = fresh_monky_img_odds.resize((75, 75))
fresh_monky_img_odds = ImageTk.PhotoImage(fresh_monky_img_odds)
test_btn = Button(odds, image = fresh_monky_img_odds, width = 40, height = 40)
test_btn.pack()
odds.geometry("300x300")
odds.mainloop()
odds_btn = Button(slots, height = 2, width = 30, text = "Odds", command = show_info)
odds_btn.pack()
该函数本身可以工作,因为我通过在没有按钮的情况下调用该函数来测试它并且它工作正常,但是使用按钮它不起作用
我得到的错误是:
_tkinter.TclError: image "pyimage10" doesn't exist
解决方案
您可以使用多个 Tk() 窗口,但如果这样做,则在创建照片图像时,您需要在 wich 窗口中指定您将使用它们,因此如果您替换此行
fresh_monky_img_odds = ImageTk.PhotoImage(fresh_monky_img_odds)
通过这条线
fresh_monky_img_odds = ImageTk.PhotoImage(master=odds ,image fresh_monky_img_odds)
如果 id 也不起作用,请将图像的引用保存在全局变量中。以下脚本应该可以工作:
fresh_monky_img_odds = "none"
def show_info():
global fresh_monky_img_odds
odds = Tk()
odds.title("Odds")
fresh_monky_img_odds = Image.open("freshmonky.gif")
fresh_monky_img_odds = fresh_monky_img_odds.resize((75, 75))
fresh_monky_img_odds = ImageTk.PhotoImage(master=odds ,image fresh_monky_img_odds)
test_btn = Button(odds, image = fresh_monky_img_odds, width = 40, height = 40)
test_btn.pack()
odds.geometry("300x300")
odds.mainloop()
odds_btn = Button(slots, height = 2, width = 30, text = "Odds", command = show_info)
odds_btn.pack()
推荐阅读
- asp.net-core - 从下拉列表中获取选定的值
- android - 尝试实现 CameraX 时,应用程序崩溃
- r - R:根据环境列表动态写入JSON
- c - Tensorflow C API - 输入张量问题
- python - 美丽的汤返回无
- javascript - 在javascript中通过字符串从数组中的项目中检索属性
- apache-spark - 使用 Spark 2.4 与 Spark 3 读取多个 JSON 文件
- javascript - 如果您第一次在提示符中键入“yes”而不是第二次,Javascript 中的函数只会中断 while 循环
- copy - 如何清除 tmux copy-mode-vi 中的行选择?
- perl - join with @ 打印错误的结果