как заставить эту функцию работать в порядке с меткой tkinter - PullRequest
1 голос
/ 14 июля 2020

, так что у меня проблемы с функцией в моем коде, и она не отображает сбой в консоли, поэтому я просто не знаю, что не так. в основном я пытаюсь сделать что-то вроде кликера, где каждый раз, когда нажимается кнопка, он увеличивает переменную exp на единицу, а затем обновляет метку, но на самом деле это не работает. также часть уровня не требует особого внимания, за исключением тех случаев, когда вы хотите что-то сказать по этому поводу.


window = Tk()

window.title ("test")



#variables
exp2 = 0
level = 1
exp = 0

#exp function
def function ():
    global exp,exp2, level
    exp2 = exp + 1
    if exp <100:
        exp = 0
        level + 1
    else:
        return function()



#labels
label_1 = Label (window, text = (exp2,"/100"), bg = 'white', fg ='black')
label_2 = Label (window, text = "exp" , bg = 'white', fg ='black')
label_3 = Label (window, text = "level", bg = 'white', fg ='black')
label_4 = Label (window, text = level, bg = 'white', fg ='black')

#buttons
button_1 = Button (window, text = 'click for xp', command = function())

#placements
label_1.grid (column = 3, row = 2)
label_2.grid (column = 3, row = 1)
label_3.grid (column = 5 , row = 1)
label_4.grid (column = 5, row = 2)
button_1.grid (column = 4, row = 4 )

window.mainloop()

Ответы [ 2 ]

0 голосов
/ 14 июля 2020
    #python3
    from tkinter import *
    window = Tk()
    window.title ("test")

    #variables
    #exp2 = 0

    exp = 0
    level=0
#exp function
    def function ():
        global exp,exp2, level
        label_1.configure(text="%d" %(exp)+"/10")
        exp+=1
        if exp==10:
                level+=1
                label_4.configure(text=level)
                exp=0
                

     



    #labels
    label_1 = Label (window,text="%d" %(exp)+"/10", bg = 'white', fg ='black')
    label_2 = Label (window, text = "exp", bg = 'white', fg ='black')
    label_3 = Label (window, text = "level", bg = 'white', fg ='black')
    label_4 = Label (window,  bg = 'white', fg ='black')
    #buttons
    button_1 = Button (window, text = 'click for xp', command = function)
    #placements
    label_1.grid (column = 3, row = 2)
    label_2.grid (column = 3, row = 1)
    label_3.grid (column = 5 , row = 1)
    label_4.grid (column = 5, row = 2)
    button_1.grid (column = 4, row = 4 )

    window.mainloop()

Хотя я не совсем понимаю вопрос, я надеюсь, что он ответил на ваш вопрос. Вы можете остановить непрерывный подсчет, удалив label_1.after (500, function). Если это ответ на ваш вопрос, проголосуйте

0 голосов
/ 14 июля 2020
def Function():
    global exp, level
    exp += 1
    if exp > 100:
        exp=0
        level+=1
    label.config(text=exp)

должно работать для вас, вам действительно не нужна переменная exp2. Label.config здесь для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...