4kpt_VА, так Вы модуль целиком имели в виду. Ну, естественно, там не все гладко. Он слишком большой, чтобы его за раз нормально переписать. А я имел в виду то, что было процитировано.
По существу…
4kpt_VНу это типа alias. Мне хочется иметь одинаковые названия для схожих методов для разных виджетов, например, одинаковые show и close для Tk, Toplevel, Text и пр. Что касается Root, то да, это alias целиком. Ну а другие - Top, TextBox, Entry еще снабжены всякими примочками по умолчанию. Это чтобы километры простыней не писать. Я просто вызову TextBox, а в нем будут уже и скроллбары, и кнопки (если нужно), и даже проверка правописания.
Зачем переименовывать существующие методы?
4kpt_VЭто торчат уши старого кода, который я писал еще до того, как выучил классы. Оставлено для совместимости. Будет время - дойду и до него.
Вас эта часть кода не смущает?
4kpt_VOK. Допустим, есть сложный виджет: Toplevel, на нем сидят 2 TextBox. В 1-м - английский текст (TextBox только для чтения), во 2-м текста нет (TextBox с возможностью правки). Определенная фраза, найденная в 1-м TextBox, выделяется определенным цветом. Во 2-м пользователь вводит перевод этой фразы. Когда он закончил перевод фразы, он нажимает кнопку или хоткей. Кнопка или хоткей вызывают обновление виджета, программа выдает следующую фразу на перевод. Естественно, всего может быть задумано не 2 TextBox, а больше, что еще больше усложнит интерфейс.
При этом Вы не хотите их destro'ить, а хотите… Короче. Реально не понятно. Давайте, может, в картинках.
Итак, что произойдет при разрушении окна и повторном его создании (так организована моя старая версия), когда необходимо ввести перевод новой фразы?
1. GUI будет перерисован. Это заметно, пусть оно займет 0,5 с, но это заметно и мерцание раздражает.
2. Надо будет восстановить выделение в 1-м TextBox, а также прокрутить экран до того уровня, чтобы выделение было видно.
3. Если пользователь ошибся с переводом, надо восстановить тот текст, что он ввел, и установить курсор туда, где он был.
4. Все виджеты надо будет перепаковать.
5. Если пользователь изменил размеры окна, то нужно восстановить геометрию Toplevel.
Короче, много мороки, неприятные эффекты перерисовки. А если я вызываю тот же сложный виджет повторно?
1. GUI в целом не перерисовывается, отображается мгновенно.
2. Надо будет установить новое выделение при переводе новой фразы, но это требует очень мало времени, пользователя мерцание не раздражает.
3. Если пользователь ошибся с переводом, то восстанавливать текст и позицию курсора не надо - они уже в виджете.
Как-то так.