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 есть ли способ сделать виджет невидимым?
Один из вариантов, как объясняется в другом ответе, заключается в использовании pack_forget или grid_forget . Другой вариант — использовать lift и lower . Это изменяет порядок укладки виджетов. Чистый эффект заключается в том, что вы можете скрывать виджеты за видными видениями сестры (или потомками братьев и сестер). Когда вы хотите, чтобы они были видны вами, lift их, и когда вы хотите, чтобы они были невидимыми, вы lower их.
Преимущество (или недостаток. ) состоит в том, что они все еще занимают место у своего хозяина. Если вы «забудете» виджет, другие виджеты могут перенастроить их размер или ориентацию, но если вы их поднимете или опустите, они не будут.
Вот простой пример:
Я знаю, что это на пару лет поздно, но это третий ответ Google для «Tkinter hide Label» от 10/27/13. Итак, если кто-то вроде меня несколько недель назад строит простой GUI и просто хочет, чтобы какой-то текст появлялся без замены его для другого виджета с помощью методов «ниже» или «поднять», я хотел бы предложить обходной путь, который я использую (Python2.7, Windows):
Идея здесь заключается в том, что вы можете установить цвет текста DISABLED в фоновом режиме (‘bg’) родителя, используя «.cget(‘bg’)» http://effbot.org/tkinterbook/widget.htm, что делает его «невидимым». Обратный вызов кнопки сбрасывает метку на цвет переднего плана по умолчанию, и текст снова отображается.
Недостатки здесь в том, что вам все равно нужно выделить пространство для текста, даже если вы не можете его прочитать, и, по крайней мере, на моем компьютере текст не идеально сочетается с фоном. Возможно, с некоторой настройкой цвет может быть лучше, и для компактных графических интерфейсов пустое пространство не должно быть слишком сложным для короткой рекламы.
Смотрите Цвет окна по умолчанию Tkinter и шестнадцатеричные цветовые коды для получения информации о том, как я узнал о материалах цвета.
Отображение виджетов в tkinter: скрыть и вернуть обратно
Мне нужно завершать функцию и удалять объекты button и Label после начала выполнения другой функции.Вот эта функция:
Далее идет другая функция. Так вот , мне нужно, что бы после нажатия на n ную кнопку функция «скрывала» кнопки и лейблы. А после повторного вызывания функции снова «возвращала».
Можно при помощи компоновщика .grid() добавлять объект и временно удалять при помощи .grid_remove()
Пример:
Так же это можно сделать с pack() при помощи функции pack_forget() Пример c pack() :
Так же можно и с place() при помощи того же place_forget()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.4.43609
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Hide, Recover and Delete Tkinter Widgets
In this tutorial, we will demonstrate how to hide, recover the Tkinter widgets, by clicking a Tkinter button. Eventually, we will also show you how to delete or kill existing Tkinter widgets.
Hide and Recover Tkinter Widgets
pack_forget() Method to Hide Tkinter Widgets
In contrast to pack method in Tkinter widgets, we could hide the Tkinter widgets by calling pack_forget() method to make the widgets invisible.
pack_forget() is bind to the command of the button buttonForget .
It will hide the label widget after clicking the button, but the label itself still exists but becomes invisible.
We need to call the pack() method again to pack the widget to make it visible, or in other words, to recover it.
grid_forget() Method to Hide Tkinter Widgets if grid Layout Is Used
If the widgets are placed with the grid layout manager, we should use grid_forget() method to make the Tkinter widgets invisible.
Here, we bind the grid_forget method to the command of the button.
You could notice that the position of the label is not the same before it is hidden after you call grid method again.
If we intend to restore the label to its original position, grid_remove method shall be the right option.
grid_remove() Method to Hide Tkinter Widgets if grid Layout Is Used
grid_remove() hides the widget but remembers the grid options like column and row .
Delete Tkinter Widgets Permanently by Clicking a Button
We will show how to delete Tkinter widgets permanently by calling the destroy method in this section.