Отображение виджетов в tkinter: скрыть и вернуть обратно
Мне нужно завершать функцию и удалять объекты button и Label после начала выполнения другой функции.Вот эта функция:
Далее идет другая функция. Так вот , мне нужно, что бы после нажатия на n ную кнопку функция «скрывала» кнопки и лейблы. А после повторного вызывания функции снова «возвращала».
Можно при помощи компоновщика .grid() добавлять объект и временно удалять при помощи .grid_remove()
Пример:
Так же это можно сделать с pack() при помощи функции pack_forget() Пример c pack() :
Так же можно и с place() при помощи того же place_forget()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.13.43306
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как скрыть кнопку в tkinter
Tkinter is a Python Package for creating GUI(Graphical User Interface) applications. Tkinter provides us with a variety of common GUI elements which we can use to build out interfaces — such as buttons, label, frame, message, menu, and various kind of entry fields and display areas. We call these elements of Widgets.
Widget is an element of Graphical User Interface (GUI) that illustrates information so that a user can interact with the OS. In Tkinter, Widgets are objects; instances of classes that represent buttons, frames, and so on.
In this article, we will demonstrate how to Hide, Recover, and Delete the Tkinter widgets, by using the various elements of widgets like buttons, labels, frames etc.
We could hide the Tkinter widgets by calling pack_forget() method to make the widgets invisible. We need to call the pack() method again to pack the widget to make it visible, or to recover it. We can also delete Tkinter widgets permanently by calling the destroy() method in this section.
Example 1: Hide and Recover the button in Tkinter using forget_pack() and pack() method.
How to make a Tkinter widget invisible?
To make a tkinter widget invisible, we can use the pack_forget() method. It is generally used to unmap the widgets from the window.
Example
In the following example, we will create a label text and a button that can be used to trigger the invisible event on the label text widget.
Output
Running the above code will produce the following window −

Now click the “Click” Button to make the text label invisible.
В Tkinter есть ли способ сделать виджет невидимым?
Хотя что-то вроде этого, заставит виджет вообще не появляться:
5 ответов
Вас могут заинтересовать pack_forget и grid_forget методы виджета. В следующем примере кнопка исчезает при нажатии
Чтобы скрыть виджет, вы можете использовать функцию pack_forget (), а чтобы снова показать его, вы можете использовать функцию pack () и реализовать их оба в отдельных функциях.
Я знаю, что это на пару лет позже, но это уже 3-й ответ Google для «Tkinter hide Label» от 27.10.13 . Так что, если кто-то, как я, несколько недель назад создает простой графический интерфейс и просто чтобы какой-то текст отображался без замены его для другого виджета с помощью методов «lower» или «lift», я хотел бы предложить обходной путь, который я использую (Python2.7, Windows):
Идея заключается в том, что вы можете установить цвет текста DISABLED на фон (‘bg’) родителя, используя «.cget (‘bg’)» http://effbot.org/tkinterbook/widget.htm сделав его» невидимым «. Функция обратного вызова кнопки сбрасывает метку на основной цвет по умолчанию, и текст снова становится видимым.
Недостатком здесь является то, что вам все равно придется выделять место для текста, даже если вы не можете его прочитать, и, по крайней мере, на моем компьютере текст не идеально сочетается с фоном. Возможно, при некоторой настройке цвет может быть лучше, а для компактных графических интерфейсов выделение пустого пространства не должно быть слишком хлопотным для короткой рекламы.
См. Цвет окна по умолчанию Tkinter и шестнадцатеричные цветовые коды для получения дополнительной информации. о том, как я узнал о цвете вещи.
Как объясняется в другом ответе, один из вариантов — использовать pack_forget или grid_forget . Другой вариант — использовать lift и lower . Это меняет порядок размещения виджетов. В результате вы можете скрыть виджеты за виджетами-братьями (или потомками братьев и сестер). Когда вы хотите, чтобы они были видны, вы lift , а когда вы хотите, чтобы они были невидимыми, вы lower .
Преимущество (или недостаток . ) в том, что они все еще занимают место у своего хозяина. Если вы «забудете» виджет, другие виджеты могут перенастроить их размер или ориентацию, но если вы поднимаете или опускаете их, они не будут.