python - 为什么我不能在画布中设置背景
问题描述
我正在尝试将背景图像放入这样的画布中:
import tkinter as tk
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.canvas = GameBoard()
self.canvas.pack()
class GameBoard(tk.Canvas):
WIDTH = 600
HEIGHT = 600
BOARD_IMAGE_PATH = '../resources/background600x600.png'
def __init__(self):
super().__init__(width=GameBoard.WIDTH, height=GameBoard.HEIGHT)
self.boardImage = tk.PhotoImage(file=GameBoard.BOARD_IMAGE_PATH)
self.create_image(0, 0, self.boardImage, anchor='nw')
root = tk.Tk()
app = App(root)
app.mainloop()
但我收到此错误消息:
C:\Users\Tata\Documents\python\PycharmProjects\CanvasBackground\venv\Scripts\python.exe C:/Users/Tata/Documents/python/PycharmProjects/CanvasBackground/GUI/frame.py
Traceback (most recent call last):
File "C:\Users\Tata\Documents\python\PycharmProjects\CanvasBackground\GUI\frame.py", line 21, in <module>
app = App(root)
File "C:\Users\Tata\Documents\python\PycharmProjects\CanvasBackground\GUI\frame.py", line 14, in __init__
self.canvas = GameBoard()
File "C:\Users\Tata\Documents\python\PycharmProjects\CanvasBackground\GUI\gameBoard.py", line 13, in __init__
self.create_image(0, 0, self.boardImage, anchor='nw')
File "C:\Users\Tata\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 2787, in create_image
return self._create('image', args, kw)
File "C:\Users\Tata\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 2773, in _create
return self.tk.getint(self.tk.call(
_tkinter.TclError: unknown option "pyimage3"
Process finished with exit code 1
当我尝试运行调试器时,它说
Connection to Python debugger failed
Interrupted function call: accept failed
这完全超出了我的范围。为什么它不起作用,为什么乞丐拒绝合作?
解决方案
定义图像时需要一个关键字参数。改变这个:
self.create_image(0, 0, self.boardImage, anchor='nw')
...对此:
self.create_image(0, 0, image=self.boardImage, anchor='nw')
推荐阅读
- java - 如何根据组合框的值重复代码多次?JSP Java
- coldfusion - 是否可以使用 onCFCRequest 或类似函数将数据从 cfc 写入调用方请求范围?
- spring - 我在春天看不到我的网页[春天]
- python - 我需要帮助嵌套这个矩阵列表(调试)
- python - 如何使用 Pandas 和 PyAutoGui.Write 创建循环
- powershell - PowerShell ISE 不允许我在以管理员身份运行时设置断点
- python - Python:将数据框转换为带有样式的html
- react-native - 代码一次激活所有开关。我一次只需要一个开关
- jquery - Toggle Burger Menu Dropdown - 当屏幕很小时,单击 Burger Menu 无济于事
- r - 无法使用 stringr::string_extract 在正则表达式中转义 $