Чтобы обнаружить нажатие кнопки в модуле Python Tkinter - PullRequest
0 голосов
/ 06 мая 2020

У меня проблема с обнаружением / проверкой нажатия кнопки в python tkinter! У меня есть переменная click . Я хочу, чтобы при нажатии моей кнопки она становилась True, например: это мой код:

buttonClicked=False
myButton=Button()

Я хочу что-то вроде этого:

if myButton is pressed:
 buttonClicked=True

Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 06 мая 2020

Мне не известен какой-либо внутренний метод tkinter, чтобы проверить, нажата ли кнопка.

Однако вы можете связать Button с функцией, которая изменяет значение глобальной переменной, как показано ниже:

from Tkinter import *

master = Tk()

def callback():
    global buttonClicked
    buttonClicked = not buttonClicked 


buttonClicked  = False # Bfore first click

b = Button(master, text="Smth", command=callback)
b.pack()

mainloop()

Код изменяет значение переменной с False на True (или наоборот) каждый раз, когда вы нажимаете кнопку.

1 голос
/ 06 мая 2020

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

полный код может go выглядеть следующим образом:

from tkinter import *
buttonClicked = False
def changeValue():
    if buttonClicked:
        buttonClicked=False
    if not buttonClicked:
        buttonClicked=True
tk = Tk()
btn = Button(tk, text="Put whatever text you want here, to tell the person what pressing the button will do", command=changeValue())
btn.pack()

Если этот ответ поможет, я был бы признателен, если вы сообщите мне! :).

Это измененная / отредактированная версия с al oop для logi c, который изменяет значение buttonClicked. В той части кода, в которой написано «if not buttonClicked:», вы можете перейти на оператор «else:». @

0 голосов
/ 07 мая 2020

Попробуйте следующее:

from tkinter import *
value = 1
def change_value():
       global value
       value -= 1
       if value == 0:
                 print("button pressed")
                 value = 1
       else:
                pass    
tk = Tk()
btn = Button(tk, text="your_text", command=change_value)
btn.pack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...