Python кнопка из tkinter выполняет функцию из command до нажатия на кнопку
Функция buttons_logic циклично выполняется раз в 1 секунду, при этом кнопку я не нажимаю, что я делаю не так? Когда я пытаюсь самостоятельно нажать на клавишу, функция так же выполняется
# -*- coding: utf-8 -*-
from Tkinter import *
root = Tk()
def buttons_logic():
print('buttons_logic')
widget_var = Button(root, bg = "green4",\
fg = "white", font = "Arial 9 bold", \
width = 8, text = 'вкл\выкл',\
command = buttons_logic)
widget_var.pack(padx = 1, pady = 1, side = LEFT)
root.mainloop()
Ответы (1 шт):
Автор решения: Анатолий Михеенко
→ Ссылка
У меня установлен python 2.7.15, и виртуальная среда virtualenv, скрипт запускал через неё, изначально вылезала ошибка This probably means that Tcl wasn't installed properly. исправил ошибку путем добавления переменной set "TCL_LIBRARY=c:\Miscellanea\Programmig\Programming-Python\Python_2.7\tcl\tcl8.5" в файл activate.bat, но это тоже не исправило ситуацию, в итоге помогло вызывать функцию обработки нажатия на кнопку не через аргумент command, а через функцию bind
# -*- coding: utf-8 -*-
from Tkinter import *
root = Tk()
def buttons_logic(event):
print('buttons_logic')
widget_var = Button(root, bg = "green4",\
fg = "white", font = "Arial 9 bold", \
width = 8, text = 'вкл\выкл')
widget_var.pack(padx = 1, pady = 1, side = LEFT)
widget_var.bind("<Button-1>", buttons_logic)
root.mainloop()
`

