Отображение и скрытие виджетов

Как вы показываете и скрываете виджетов в Tkinter? Я хочу иметь окно ввода, но не показывать его в любое время. Может ли кто-нибудь показать мне функции для отображения и скрытия виджетов и других виджетов в tkinter? Я хочу иметь возможность сделать это без нескольких кадров.

2 Solutions collect form web for “Отображение и скрытие виджетов”

Об этом было сказано ранее в stackoverflow . Короткий ответ: вы можете использовать grid_remove, из-за чего виджет будет удален, если он был ранее добавлен через сетку. grid_remove запоминает, где был виджет, поэтому простая grid() вернет его, не переустанавливая все параметры.

Вы также можете использовать pack_forget (при использовании пакета) и grid_forget (при использовании сетки). Они работают аналогично grid_remove, за исключением того, что они заставляют забыть все настройки, что означает, что вы должны явно разместить его в нужном месте на экране.

Другим вариантом является использование порядка хранения виджетов. Вы можете использовать более низкий метод, чтобы скрыть виджет за его родителем и поднять его вверх. См. Этот ответ для примера.

Я попробовал предложения, которые другие разместили, и заметил, что я делал простую ошибку. Вы не можете вызвать .grid() в той же строке, которую вы объявляете виджет, который вы собираетесь скрывать.

Чтобы уточнить, я ранее имел это:

 self.helpExpansion = ttk.Label(self.helpMenu, text="Expansion Widget").grid(row=1, column=3, sticky=EW) self.helpExpansion.grid_remove() 

Но я получил ошибку AttributeError: 'NoneType' object has no attribute 'grid_remove' . Чтобы исправить это, мне пришлось позвонить в .grid() в новой строке, например:

 self.helpExpansion = ttk.Label(self.helpMenu, text="Help Expansion") self.helpExpansion.grid(row=1, column=3, sticky=EW) self.helpExpansion.grid_remove() 

Затем, чтобы переключаться между показом и скрытием, я просто чередовался между вызовом self.helpExpansion.grid() (аргументы функции не нужны) и self.helpExpansion.grid_remove() .

Для меня это работало как с tk.Label и с ttk.Label . Я использую Python 2.7.13 . Надеюсь, это поможет!

  • Python Tkinter: экран загрузки
  • Как вызвать действие при нажатии кнопки в Tkinter
  • Tkinter, виджет ввода, обнаруживает входной текст?
  • Как создать кнопку на холсте tkinter?
  • простая анимация с использованием tkinter
  • tkinter: как использовать после метода
  • Tkinter: Как я могу динамически создавать виджет, который можно затем уничтожить или удалить?
  • основной вопрос о кнопках tkinter
  •  
    Interesting Posts for Van-Lav

    Python / Regex – Match. #, #. в String

    Модуль Python ElementTree: как игнорировать пространство имен XML-файлов для поиска соответствующего элемента при использовании метода «найти», «найти»,

    Установка NumPy через Anaconda в Windows

    Возвращает количество файлов в каталоге и подкаталоге

    Как я могу обрабатывать аргументы командной строки в Python?

    Python – механизм для идентификации сжатого типа файла и распаковки

    Pyspark: разделение столбцов нескольких массивов на строки

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

    Переиндексация и заполнение одного уровня иерархического индекса в пандах

    видимость кода и видимость / определения

    Настройка родительского ключа, но не дочернего ключа при использовании конечного объекта-протодастора

    Как сортировать огромные файлы с Python?

    Выключить оси в подзаголовках

    Различные результаты, полученные с использованием общих признаков лямбда и автоматического возврата в C ++ 14

    Matlab vs Python: Изменить форму

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