Форум сайта python.su
Доброго времени суток!
У меня возник достаточно простой вопрос: как одним методом (или чем-то еще) можно удалить все виджеты окна Tkinter? Я искал и на Python Docs и в гугле, искал даже в самом Tkinter.py, но ничего не нашел подобного. Подскажите, как мне решить данную проблему.
Офлайн
1. Вопрос не по месту (нужно в разделе GUI).
2. Есть много методов:
- Можно все виджеты размещать в одной рамке и потом ее удалять.
- Можно заводить список id виджетов и потом циклом пробегать и их удалять.
- У каждого менеджера есть антоним (например, у метода pack есть pack_forget) их можно
использовать для скрытия объектов.
- Можно не отображать базовое окно (спрятать его) а делать все в виде множества Toplevel (окон вернего
уровня) и тогда их можно смело убивать - это не приведет к остановке программы.
- Можно изменять положение этих виджетов вынося их за область видимости.
- Еще туева туча способов.
Будут вопросы - пишите.
Офлайн
1. Написал сюда, так как посчитал этот вопрос слишком простым
2. Я так понял, что конкретного метода нет в классе.
Все равно спасибо за такой ответ!
Офлайн
Вы не поняли, что я написал…
Офлайн
Нет. Я как раз понял. Просто я рассчитывал, что будет какой-нибудь метод в классе Tk, который удалит все привязанные виджеты к экземпляру данного класса. Но я также предполагал, что есть вероятность отсутствия такого метода.
Офлайн
Если честно, то то, что Вы хотите, можно написать за 5 минут самому… Просто я не вижу в этом смысла. Даже не знаю где это можно было бы применить.
P.S. Если все делать так как в документации, то все классы, которые отвечают за вывод графической информации, наследуются от рамки. Этот подход и позволяет частично реализовать то, что вы хотите.
Будут вопросы - пишите…
Отредактировано 4kpt_II (Фев. 3, 2014 16:28:34)
Офлайн