Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python can';t在函数中绘制tkinter图像_Python_Tkinter_Tkinter Canvas - Fatal编程技术网

Python can';t在函数中绘制tkinter图像

Python can';t在函数中绘制tkinter图像,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我正在制作一个垄断游戏&我正在尝试在画布上绘制图像,但它只有在功能不可用时才能工作: def make_image(root, location, canvas): photo = PhotoImage(file = root) canvas.create_image(location["X"],location["Y"], image = photo, anchor = "nw") class something(): def start(self, controller): sel

我正在制作一个垄断游戏&我正在尝试在画布上绘制图像,但它只有在功能不可用时才能工作:

def make_image(root, location, canvas):
photo = PhotoImage(file = root)
canvas.create_image(location["X"],location["Y"], image = photo, anchor = "nw")

class something():
def start(self, controller):
    self.controller = controller
    #photo = PhotoImage(file = "googolopoly.png")
    #self.canvas.create_image(0,0, image = photo, anchor = "nw")
    make_image("googolopoly.png", {"X":0,"Y":0}, self.canvas)
    make_text(self.canvas, "MONOPOLY!!!!", {"X":1050,"Y":20})
    make_button(self.main_tk, self.canvas, "roll dice", lambda: self.roll_dice(), {"X":1100, "Y":50}, 100)
    for i in range(controller.player_number):
        self.players.append(make_text(self.canvas, str(i+1), {"X":902+i*10, "Y":946}))
    self.main_tk.mainloop()
目前它不会画图,但如果我记下评论,它会工作(没有功能) 这也发生在主循环之后,当我想吸引球员时


我真的需要它作为一个函数。怎么办?如果您需要,我可以添加一些代码

您缺少这行代码:
myCanvas.image=photo

即使在标签上绘制图像更容易,使用此代码,您也可以在画布上使用函数
make_image()


您缺少这行代码:
myCanvas.image=photo

即使在标签上绘制图像更容易,使用此代码,您也可以在画布上使用函数
make_image()



你确定要在画布上吗?在标签上做会更容易实际上我不知道标签是什么。我写的是课堂上教给我们的。如果你说有一个更简单的解决方案,请添加一个答案。(但我在用画布做其他的东西)你能不能再问一个关于如何使用标签的问题?标签是窗口上的文本元素,顺便问一下,“不工作”是什么意思?你的程序崩溃了吗?它是否产生了错误的图像?它会创建一个空白图像吗?你研究过这个吗?关于“为什么在函数中创建时我的图像不显示?”有很多问题和答案。图像只是没有显示,但程序将继续正常工作@bryanoakleyou确实要在画布上显示吗?在标签上做会更容易实际上我不知道标签是什么。我写的是课堂上教给我们的。如果你说有一个更简单的解决方案,请添加一个答案。(但我在用画布做其他的东西)你能不能再问一个关于如何使用标签的问题?标签是窗口上的文本元素,顺便问一下,“不工作”是什么意思?你的程序崩溃了吗?它是否产生了错误的图像?它会创建一个空白图像吗?你研究过这个吗?关于“为什么在函数中创建时我的图像不显示?”有很多问题和答案。图像只是没有显示,但程序将继续正常运行@bryanoakley,但您说要在mycanvas类中创建一个名为photo的变量?所以每次我制作照片时它都会重新生成变量,不是吗?类似于@AlonKagandoes it work@AlonKagan?实际上我不在家,但是如果我第二次调用该函数,它不会删除最后一张照片吗?它不会@AlonKagan,但是你说你想在mycanvas类中创建一个名为photo的变量?所以每次我制作照片时它都会重新生成变量,不是吗?类似于@AlonKagandoes it work@AlonKagan?实际上我不在家,但如果我再次调用该函数,它不会删除最后一张照片吗?它不会@AlonKagan
from Tkinter import *


def make_image(filename, location, canvas):
    photo  = PhotoImage(file=filename)
    myCanvas.image = photo
    myCanvas.create_image(0,0, image = photo, anchor = "nw")



root = Tk()

myCanvas = Canvas(root, width=100, height=100)
myCanvas.grid()


make_image("image.gif", (5,5,95,95), myCanvas)

root.mainloop()