Tkinter不显示图像

我有以下代码:


from tkinter import *

import urllib

import urllib.request

from bs4 import BeautifulSoup

import Pydeck

import sys

from collections import defaultdict


root = Tk()

name=""

def buttonclicked():

    name()

    picture()


def name():


    all_lists=[] #all lists

    text = inputfield.get()

    Pydeck.loadDatabase('DATABASE PATH')

    cardName = Pydeck.getCardsFromName(text)

    if not cardName == "":

            c = Pydeck.Card(cardName)

    tex.insert(END, c.name)

    level="\nLevel %s" % c.level + " " + c.attribute + " " + c.typestring 

    tex.insert(END, level)

    atk="\nAtk: %s" % c.attack

    tex.insert(END, atk)

    defe="\nDef: %s" % c.defense

    tex.insert(END, defe)

    typestring='\n%s' %c.typestring

    desc='\n%s' %c.description

    seperator='\n--------------------\n'

    tex.insert(END, typestring)

    tex.insert(END, desc)

    tex.insert(END,seperator)

    #--

    tex.see(END)             # Scroll if necessary

    return c.cardID



def picture():    

    text = inputfield.get()

    gifdir = "PICTURE FOLDERS PATH"

    Pydeck.loadDatabase('DATABASE PATH')

    cardName = Pydeck.getCardsFromName(text)

    if not cardName == "":

        c=Pydeck.Card(cardName)

    filename='{}.gif' .format(c.cardID)

    img = PhotoImage(file=gifdir+filename)

    can = Canvas(root)

    can.pack(fill=BOTH,side='top')

    can.config(width=img.width(), height=img.height())        

    can.create_image(2, 2, image=img, anchor=NW)


tex=Text(root)

tex.pack(side='right')

inputfield = Entry(root)

inputfield.pack(side='bottom')

but = Button(root,text="Enter Name", command = buttonclicked) #Calls name function

but.pack(side='bottom')

text = inputfield.get()


root.mainloop()

好的,简而言之,该程序在Tkinter for Python 3.3中。它要求用户输入一个怪物的名称,然后在数据库中搜索该怪物并返回该怪物的属性,这是在name函数中完成的。我希望它显示我遇到麻烦的怪物的照片。因此,该picture函数采用属性之一,特别是cardID属性,并将其用作gif文件的名称。但是它不显示图片,我也不知道为什么。有人知道为什么吗?


繁华开满天机
浏览 186回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python