2016-05-13 115 views
0

我正在做一个大富翁游戏,&我试图在画布上绘制图像绘制Tkinter的图像,但它只会在功能上,如果不工作:不能在功能

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() 
目前

它赢得” t画一张图片,但如果我记下它的意见,它将工作(没有功能) 它也发生在主循环后,当我想绘制球员

我真的需要它作为一个函数。该怎么办?如果你需要我可以把更多的代码

+0

确定要在帆布上?它会更容易做一个标签 – Veltro

+0

其实我不知道标签是什么。我写的是我们在课堂上教过的。如果你说有一个更简单的解决方案,请添加一个答案。 (但我用帆布的一切) –

+0

你可以请张贴另一个问题如何做到这一点与标签? 标签是窗口上的文本元素 – Veltro

回答

1

你错过了这行代码:myCanvas.image = photo

即使它会更容易在图像上绘制一个标签,与此代码,你可以用函数make_image()做在Canvas:

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() 
+0

但你说你想创建一个名为mycanvas类中的变量名为照片?所以每次我拍照都会重拍变量不是吗? –

+0

这样的事情@AlonKagan – Veltro

+0

它工作@AlonKagan? – Veltro