如何使用tkinter在python中单击按钮后更新内容

如何使用tkinter在python中单击按钮后更新内容,python,tkinter,Python,Tkinter,我是tkinter模块的新手,想知道在按下按钮后是否有更新标签的方法。我试图做一个益智游戏,使用按钮来增加和减少标签的价值。我包括了所有的代码,这样你们都可以看到发生了什么。当我运行它并单击按钮时,什么也没发生 #creat GUI import tkinter import time #------------------------------------------------- def isactive(): return Tr

我是tkinter模块的新手,想知道在按下按钮后是否有更新标签的方法。我试图做一个益智游戏,使用按钮来增加和减少标签的价值。我包括了所有的代码,这样你们都可以看到发生了什么。当我运行它并单击按钮时,什么也没发生

    #creat GUI
    import tkinter
    import time

    #-------------------------------------------------

    def isactive():
        return True

    #-------------------------------------------------

    def inv(event):
        global OkToPressI

        if OkToPressI == False:
            pass
        else:
            updateflint()
            updategrass()
            updatehay()
            updatetree()
            updatelog()
            updatesapling()
            updatetwig()
            updateboulder()
            updaterock()
            updatepickaxe()
            updateaxe()
            updatefirepit()
            updatetent()
            updatetorch()
            startLabel.config(text='')

            OkToPressI =False




    #-------------------------------------------------




    def updateflint():
        global flint

        if isactive():
            flintlabel.after(100, updateflint)
    #-------------------------------------------------

    def updategrass():
        global grass

        if isactive():
            grasslabel.after(100, updategrass)

    #-------------------------------------------------

    def updatehay():
        global hay

        if isactive():
            haylabel.after(100, updatehay)

    #-------------------------------------------------

    def updatetree():
        global tree

        if isactive():
            treelabel.after(100, updatetree)

    #-------------------------------------------------

    def updatelog():
        global log

        if isactive():
            loglabel.after(100, updatelog)

    #-------------------------------------------------

    def updatesapling():
        global sapling

        if isactive():
            saplinglabel.after(100,updatesapling)

    #-------------------------------------------------

    def updatetwig():
        global twig

        if isactive():
            twiglabel.after(100, updatetwig)

    #-------------------------------------------------

    def updateboulder():
        global boulder

        if isactive():
            boulderlabel.after(100, updateboulder)

    #-------------------------------------------------

    def updaterock():
        global rock

        if isactive():
            rocklabel.after(100, updaterock)

    #-------------------------------------------------

    def updatepickaxe():
        global pickaxe

       if isactive():
            pickaxelabel.after(100, updatepickaxe)

    #-------------------------------------------------

    def updateaxe():
        global axe

        if isactive():
            axelabel.after(100, updateaxe)

    #-------------------------------------------------

    def updatefirepit():
        global firepit

        if isactive():
            firepitlabel.after(100, updatefirepit)

    #-------------------------------------------------

    def updatetent():
        global tent

        if isactive():
            tentlabel.after(100, updatetent)

    #-------------------------------------------------

    def updatetorch():
        global torch

        if isactive():
            torchlabel.after(100, updatetorch)

    #-------------------------------------------------
    #crafting constrants
    def crafthay():
        global hay
        global grass
        if grass == 0:
            return 'You can\'t.'
        else:
            return 'Crafting...'
            time.sleep(5)
            hay += 1
            grass -= 1

            return 'Item crafted.'
    #-------------------------------------------------

    def crafttwig():
        global twig
        global sapling
        if sapling == 0:
            return 'You can\'t.'
        else:
            return 'Crafting...'
            time.sleep(5)
            sapling -= 1
            twig += 1
            return 'Item crafted.'

    #-------------------------------------------------

    def craftlog():
        global axe
        global tree
        global log
        if axe == 0:
            if tree ==0:
                return 'You can\'t.'
            else:
                return 'You are missing something.'
        else:
            return 'Crafting...'
            time.sleep(5)
            axe -= 1
            tree -= 1
            log += 1
            return 'Item crafted.'

    #-------------------------------------------------

    def craftaxe():
        global twig
        global flint
        global axe
        if flint == 0:
            if twig < 3:
                return 'You can\'t.'
            else:
                return 'You are missing something.'
        else:
            return 'Crafting...'
            time.sleep(5)
            twig -= 3
            flint -=1
            axe += 1
            return 'Item crafted.'

    #-------------------------------------------------

    def crafttent():
        global twig
        global tent
        global hay
        if twig < 10:
            if hay < 15:
                return 'You can\'t.'
        else:
            return 'Crafting...'
            time.sleep(5)
            twig -= 10
            hay -= 15
            tent += 1
            return 'Item Crafted.'

    #-------------------------------------------------

    def craftfirepit():
        global boulder
        global log
        global twig
        global torch
        global firepit

        if boulder < 5:
            if log < 3:
                if twig == 0:
                    if torch == 0:
                        return 'You can\'t.'
        else:
            return 'Crafting...'
            time.sleep(5)
            boulder -= 5
            log -= 3
            twig -= 1
            torch -= 1
            firepit += 1
            return 'Item crafted'

    #-------------------------------------------------

    def crafttorch():
        global flint
        global grass
        global twig
        global torch
        if flint == 0:
            if grass == 0:
                if twig == 0:
                    return 'You can\'t.'
        else:
            return 'crafting...'
            time.sleep(5)
            flint -= 1
            grass -= 1
            twig -= 1
            torch += 1
            return 'Item crafted.'

    #-------------------------------------------------

    def craftpickaxe():
        global flint
        global twig
        global pickaxe
        if flint < 2:
            if twig == 0:
                return 'You can\'t'
        else:
            return 'Crafting...'
            time.sleep (5)
            flint -= 2
            twig -= 1
            pickaxe += 1
            return 'Item crafted.'

    #-------------------------------------------------

    #all global variables
    OkToPressI = True
    flint = 50
    grass = 100
    hay = 0
    tree = 100
    log = 0
    sapling = 100
    twig = 0
    boulder = 30
    rock = 0
    pickaxe = 0
    axe = 0
    firepit = 0
    tent = 0
    torch = 0

    #-------------------------------------------------------

    print("'Crafting Challenge' Game")
    print("-----------------------------------------\n")


    print("TRY TO SURVIVE BY CRAFTING A TENT AND A FIREPIT!")
    print('Press i to see your inventroy and c to craft.')

    #----------------------------------------------------------------------
    #run the GUI for the active inventory



    root = tkinter.Tk()
    root.title("Inventory")
    root.geometry("750x750")
    startLabel= tkinter.Label(root, text="Press 'i' to see inventory!", font=('Helvetica', 12))
    flintlabel= tkinter.Label(root, text="Flint: "  + str(flint), font = ('Helvetica',12))
    grasslabel= tkinter.Label(root, text='Grass: ' + str(grass), font = ('Helvetica',12))
    haylabel= tkinter.Label(root, text='Hay: ' + str(hay), font = ('Helvetica',12))
    treelabel= tkinter.Label(root, text='Tree: ' + str(tree), font = ('Helvetica',12))
    loglabel= tkinter.Label(root, text='Log: ' +str(log), font = ('Helvetica',12))
    saplinglabel= tkinter.Label(root, text='Sapling: ' + str(sapling), font = ('Helvetica',12))
    twiglabel= tkinter.Label(root, text='Twig: ' +str(twig), font = ('Helvetica',12))
    boulderlabel= tkinter.Label(root, text='Boulder: ' + str(boulder), font = ('Helvetica',12))
    rocklabel= tkinter.Label(root, text='Rock: ' + str(rock), font=('Helvetica',12))
    pickaxelabel= tkinter.Label(root, text='Pickaxe: ' + str(pickaxe), font=('Helvetica',12))
    axelabel= tkinter.Label(root, text='Axe: ' +str(axe), font=('Helvetica',12))
    firepitlabel= tkinter.Label(root, text='Firepit: ' + str(firepit), font=('Helvetica',12))
    tentlabel= tkinter.Label(root, text='Tent: ' + str(tent), font=('Helvetica',12))
    torchlabel= tkinter.Label(root, text='Torch: ' + str(torch), font=('Helvetica',12))
    craftlabel= tkinter.Label(root, text='----------------------------------------------')
    craft2label= tkinter.Label(root, text='Press the button to craft.')
    btnhay = tkinter.Button(root, text='Hay', command=crafthay)
    btntwig = tkinter.Button(root, text='Twig', command=crafttwig)
    btnlog = tkinter.Button(root, text='Log', command=craftlog)
    btnaxe = tkinter.Button(root, text='Axe', command=craftaxe)
    btntent = tkinter.Button(root, text='Tent', command=crafttent)
    btnfirepit = tkinter.Button(root, text='Firepit', command=craftfirepit)
    btntorch = tkinter.Button(root, text='Torch', command=crafttorch)
    btnpickaxe = tkinter.Button(root, text='Pickaxe', command=craftpickaxe)
    startLabel.pack()
    flintlabel.pack()
    grasslabel.pack()
    haylabel.pack()
    treelabel.pack()
    loglabel.pack()
    saplinglabel.pack()
    twiglabel.pack()
    boulderlabel.pack()
    rocklabel.pack()
    pickaxelabel.pack()
    axelabel.pack()
    firepitlabel.pack()
    tentlabel.pack()
    torchlabel.pack()
    craftlabel.pack()
    btnhay.pack()
    btntwig.pack()
    btnlog.pack()
    btnaxe.pack()
    btntent.pack()
    btnfirepit.pack()
    btntorch.pack()
    btnpickaxe.pack()
    root.bind('<i>',inv)
    root.mainloop()
    #starts crafting
    if tent >= 1 and firepit >= 1:
        print("\n**YOU HAVE MANAGED TO SURVIVE!\nWELL DONE!")
#创建GUI
进口tkinter
导入时间
#-------------------------------------------------
def isactive():
返回真值
#-------------------------------------------------
def库存(事件):
全球OkToPressI
如果OkToPressI==False:
通过
其他:
updateflint()
updategrass()
updatehay()
updatetree()
updatelog()
更新采样()
updatewig()
UpdateBolder()
updaterock()
更新表kaxe()
updateaxe()
updatefirepit()
updateent()
updatetorch()
startabel.config(文本=“”)
OkToPressI=False
#-------------------------------------------------
def updateflint():
全球燧石
如果是活动的():
flintlabel.after(100,updateflint)
#-------------------------------------------------
def updategrass():
全球草
如果是活动的():
grasslabel.after(100,updategrass)
#-------------------------------------------------
def updatehay():
全球干草
如果是活动的():
haylabel.after(100,updatehay)
#-------------------------------------------------
def updatetree():
全局树
如果是活动的():
treelabel.after(100,updatetree)
#-------------------------------------------------
def updatelog():
全局日志
如果是活动的():
loglabel.after(100,更新日志)
#-------------------------------------------------
def UPDATESAPPLING():
全球树苗
如果是活动的():
saplinglabel.after(100,更新采样)
#-------------------------------------------------
def updatetwig():
全球细枝
如果是活动的():
twiglabel.after(100,updatewig)
#-------------------------------------------------
def updatebounder():
全球巨砾
如果是活动的():
boulderlabel.after(100,updateboulder)
#-------------------------------------------------
def updaterock():
环球摇滚
如果是活动的():
rocklabel.after(100,updaterock)
#-------------------------------------------------
def UPDATEPICAXE():
全球鹤嘴锄
如果是活动的():
pickaxelabel.after(100,更新的Epickaxe)
#-------------------------------------------------
def updateaxe():
全球斧头
如果是活动的():
axelabel.after(100,updateaxe)
#-------------------------------------------------
def updatefirepit():
全球壁炉
如果是活动的():
firepitlabel.after(100,updatefirepit)
#-------------------------------------------------
def updatetent():
全球帐篷
如果是活动的():
tentlabel.after(100,更新测试)
#-------------------------------------------------
def updatetorch():
全球火炬
如果是活动的():
手电筒标签后(100,updatetorch)
#-------------------------------------------------
#制作建筑材料
def crafthay():
全球干草
全球草
如果草地==0:
返回“您不能”
其他:
返回“手工制作…”
时间。睡眠(5)
干草+=1
草-=1
返回“物品制作”
#-------------------------------------------------
def craftwig():
全球细枝
全球树苗
如果树苗==0:
返回“您不能”
其他:
返回“手工制作…”
时间。睡眠(5)
树苗-=1
小枝+=1
返回“物品制作”
#-------------------------------------------------
def craftlog():
全球斧头
全局树
全局日志
如果axe==0:
如果tree==0:
返回“您不能”
其他:
return“您缺少了一些东西。”
其他:
返回“手工制作…”
时间。睡眠(5)
斧头-=1
树-=1
对数+=1
返回“物品制作”
#-------------------------------------------------
def craftaxe():
全球细枝
全球燧石
全球斧头
如果燧石==0:
如果细枝<3:
返回“您不能”
其他:
return“您缺少了一些东西。”
其他:
返回“手工制作…”
时间。睡眠(5)
小枝-=3
燧石-=1
axe+=1
返回“物品制作”
#-------------------------------------------------
def craftent():
全球细枝
全球帐篷
全球干草
如果树枝<10:
如果hay<15:
返回“您不能”
其他:
返回“手工制作…”
时间。睡眠(5)
细枝-=10
干草-=15
帐篷+=1
返回“物品制作”
#-------------------------------------------------
def.it():
全球巨砾
全局日志
全球细枝
全球火炬
全球壁炉
如果漂石<5:
如果日志<3:
如果细枝==0:
如果火炬==0:
返回“您不能”
其他:
返回“手工制作…”
时间。睡眠(5)
卵石-=5
对数-=3
小枝-=1
import tkinter as tk

flint_text = tk.StringVar()
flint_text.set("Flint: "  + str(flint))
flintlabel= tkinter.Label(root, textvariable=flint_text)
flintlabel= tkinter.Label(root, "Flint: 0")
flintlabel['text'] = "Flint: "  + str(flint)
flintlabel.config(text="Flint: "  + str(flint))
try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
except ImportError:
    import Tkinter as tk


def update_something(widget):
    import random
    widget['text'] = random.randint(0, 9)


if __name__ == '__main__':
    root = tk.Tk()
    label = tk.Label(root, text=0)
    tk.Button(root, text="Update",
                        command=lambda w=label: update_something(w)).pack()
    label.pack()
    tk.mainloop()