Отключить кнопку Tkinter во время выполнения команды

Я хочу отключить tk inter button при выполнении команды и включить ее после завершения выполнения команды. Я пробовал этот код, но, похоже, он не работает.

from Tkinter import * import time top = Tk() def Run(object): object.config(state = 'disabled') print 'test' time.sleep(5) object.config(state = 'normal') b1 = Button(top, text = 'RUN', command = lambda : Run(b1)) b1.pack() top.mainloop() 

Выполнение команды выполняется хорошо, но каждый раз, когда я нажимаю кнопку при выполнении команды, «тестовый» появляется в консоли сразу после завершения функции «Запуск». Это означает, что кнопка не отключается при выполнении функции Run. Любое предложение исправить эту проблему?

заранее спасибо

3 Solutions collect form web for “Отключить кнопку Tkinter во время выполнения команды”

Тебе нужно

 object.config(state = 'disabled') b1.update() time.sleep(5) object.config(state = 'normal') b1.update() 

обновить кнопку и передать выполнение Tkinter.

Используйте pack_forget () для отключения и pack () для повторного включения. Это приводит к тому, что оконный менеджер «pack» временно «забывает», что у него есть кнопка, пока вы снова не вызовете пакет.

 from Tkinter import * import time top = Tk() def Run(object): object.pack_forget() print 'test' time.sleep(5) object.pack() b1 = Button(top, text = 'RUN', command = lambda : Run(b1)) b1.pack() top.mainloop() 

Я предпочитаю использовать метод «после» Tkinter, поэтому другие вещи можно сделать, пока 5 секунд отсчитывают. В этом случае это только кнопка выхода.

 from Tkinter import * ##import time from functools import partial top = Tk() def Run(object): if object["state"] == "active": object["state"] = "disabled" object.after(5000, partial(Run, object)) else: object["state"] = "active" print object["state"] b1 = Button(top, text = 'RUN') b1.pack() ## pass b1 to function after it has been created b1["command"] = partial(Run, b1) b1["state"]="active" Button(top, text="Quit", command=top.quit).pack() top.mainloop() 
  • Привязка <Key> к записи в Tkinter
  • Ошибка Tcl_AsyncDelete Многопоточность Python
  • Обновление окна в Tkinter
  • Python Tkinter: прокрутка холста с помощью MouseWheel
  • как изменить цвет кнопки bg после нажатия и вернуться к предыдущему цвету
  • filedialog, tkinter и открывающие файлы
  • Нарисуйте прямоугольник на щелчке мыши
  • Предоставление команды во встроенном терминале
  •  
    Interesting Posts for Van-Lav

    Массовые сберегательные объекты SQLAlchemy

    python 3 symlinked to python 2 – как отменить

    Почему имя содержащего класса не распознается как аннотация функции возвращаемого значения?

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

    Правильный способ попробовать / кроме использования модуля запросов Python?

    Matplotlib: отображение значений массива с помощью imshow

    Как перенаправить подпроцесс python stderr и stdout в несколько файлов?

    Как включить Python в приложение C ++ Builder / Delphi 2010?

    Перечислить дублирование конкатенации данных в python

    Может ли pandas SparseSeries хранить значения в формате float16?

    Найти совпадающие матчи

    Pandas: одновременное назначение нескольких * новых * столбцов

    Приложение Flask, завернутое в DispatcherMiddleware, больше не имеет test_client

    Преобразование в и из индуистского календаря

    скручивать большой файл как запрос POST

    Python - лучший язык программирования в мире.