tkinter:未显示创建的图像

时间:2018-05-16 14:11:25

标签: python python-3.x tkinter tkinter-canvas

我正在使用python创建一个纸牌游戏。我想创建一个在tkinter窗口中显示图片的功能,但不会显示图像。我把所有的图片文件都放在了正确的位置。

这是我的代码:

from tkinter import*

root = Tk()

pictures = ['1C kopiera.gif', '1D kopiera.gif', '1H kopiera.gif', '1S kopiera.gif',
            '2C kopiera. gif', '2D kopiera.gif', '2H kopiera.gif', '2S kopiera.gif',
            '3C kopiera.gif','3D kopiera.gif', '3H kopiera.gif', '3S kopiera.gif',
            '4C kopiera.gif', '4D kopiera.gif', '4H kopiera.gif', '4S kopiera.gif',
            '5C kopiera.gif', '5D kopiera.gif', '5H kopiera.gif', '5S kopiera.gif',
            '6C kopiera.gif', '6D kopiera.gif', '6H kopiera.gif', '6S kopiera.gif',
            '7C kopiera.gif', '7D kopiera.gif', '7H kopiera.gif', '7S kopiera.gif',
            '8C kopiera.gif', '8D kopiera.gif', '8H kopiera.gif', '8S kopiera.gif',
            '9C kopiera.gif', '9D kopiera.gif', '9H kopiera.gif', '9S kopiera.gif',
            '10C kopiera.gif', '10D kopiera.gif', '10H kopiera.gif',
            '10S kopiera.gif', '11C kopiera.gif', '11D kopiera.gif',
            '11S kopiera.gif', '11h kopiera.gif', '12C kopiera.gif',
            '12D kopiera.gif', '12H kopiera.gif', '12S kopiera.gif',
            '13C kopiera.gif', '13D kopiera.gif', '13H kopiera.gif',
            '13S kopiera.gif']

C = Canvas(root, width=1300, height=750, bg="dark green")
C.grid(column=0, row=1, columnspan=20)
root.title("Black Jack")

def create_image():
    gif = PhotoImage(file=""
                     + "/Users/ivanwahlund/PycharmProjects/yeboi/5C kopiera.gif")
    C.create_image(400, 350, image=gif)

create_image()
root.mainloop()

1 个答案:

答案 0 :(得分:0)

你的gif对象是一个局部变量。 将其设为全局,即可显示图片。

通常你应该保存对图像的引用。

from tkinter import*

root = Tk()

pictures =['1C kopiera.gif', '1D kopiera.gif', '1H kopiera.gif', '1S kopiera.gif', '2C kopiera. gif', '2D kopiera.gif', '2H kopiera.gif', '2S kopiera.gif', '3C kopiera.gif','3D kopiera.gif', '3H kopiera.gif', '3S kopiera.gif', '4C kopiera.gif', '4D kopiera.gif', '4H kopiera.gif', '4S kopiera.gif', '5C kopiera.gif', '5D kopiera.gif', '5H kopiera.gif', '5S kopiera.gif', '6C kopiera.gif', '6D kopiera.gif', '6H kopiera.gif', '6S kopiera.gif', '7C kopiera.gif', '7D kopiera.gif', '7H kopiera.gif', '7S kopiera.gif', '8C kopiera.gif', '8D kopiera.gif', '8H kopiera.gif', '8S kopiera.gif', '9C kopiera.gif', '9D kopiera.gif', '9H kopiera.gif', '9S kopiera.gif','10C kopiera.gif', '10D kopiera.gif', '10H kopiera.gif', '10S kopiera.gif', '11C kopiera.gif', '11D kopiera.gif', '11S kopiera.gif', '11h kopiera.gif', '12C kopiera.gif', '12D kopiera.gif', '12H kopiera.gif', '12S kopiera.gif', '13C kopiera.gif', '13D kopiera.gif', '13H kopiera.gif', '13S kopiera.gif']



C = Canvas(root, width=1300, height=750, bg="dark green")

C.grid(column=0, row=1, columnspan=20)
root.title("Black Jack")

def create_image():
    global gif    # make it global else out of scope
    gif = PhotoImage(file="earth.gif")
    C.create_image(400, 350, image=gif)
    C.grid(column=0, row=1, columnspan=20)

create_image()
root.mainloop()
相关问题