Команды кнопок Tkinter не запускаются - PullRequest
0 голосов
/ 08 декабря 2018

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

Проблема в том, что значение глобальной переменной как-то не определено.

Может, кто-нибудь может мне помочь?Спасибо !!

def nb_1():
    global value
    value=1

def nb_2():
    global value
    value=2

def valueNumber():
    global value
    
    b1=Button(frame_output, text='1', command=nb_1)
    b1.pack(side=LEFT)

    b2=Button(frame_output, text='2', command=nb_2)
    b2.pack(side=LEFT)

    x=value
    return x
    
print (valueNumber())

1 Ответ

0 голосов
/ 08 декабря 2018

Во-первых, вам нужно определить глобальную переменную value вне ваших функций.Также, valueNumber() делает только то, что создает кнопки, а не вызывает команды nb_1 и nb_2, а просто назначает их как команды кнопок.Таким образом, возвращаемое значение будет значением, которое вы сначала присвоили value, здесь 0.

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

from tkinter import Button, Tk, LEFT

frame_output = Tk()

def nb_1():
    global value
    value=1
    print(value)

def nb_2():
    global value
    value=2
    print(value)

def valueNumber():
    global value

    b1=Button(frame_output, text='1', command=nb_1)
    b1.pack(side=LEFT)

    b2=Button(frame_output, text='2', command=nb_2)
    b2.pack(side=LEFT)

    x=value
    return x

value = 0
valueNumber()

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