что делать, если в коде нет объявления Tk ()

Молодой

Итак, я наткнулся на фрагмент кода графического интерфейса Python3 tkinter, и в нем нет ничего похожего, root = Tk()кроме как ОН РАБОТАЕТ ! Я прочитал это, и это действительно полезно. Но у меня вопрос: если окно tk и интерпретатор запускаются при создании моего первого виджета, как я могу добавить больше виджетов в корень, не указывая его? ака. Что мне делать, если я хочу добавить больше виджетов в ту же программу / то же окно, поскольку у меня нет переменной, например, rootдля хранения объекта корневого окна?

Кстати, был такой класс контроллера:

class Controller(tk.Tk):
    def __init__ (self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        parentObj = tk.Frame(self)
        self.allFrames = {}
        ...

Означает ли это, что фрейм parentObj является оконным / крайним слоем фрейма в этом приложении? Как мне понять это определение класса здесь? Для чего tk.Tk.__init__(self, *args, **kwargs)здесь?

Брайан Окли

Controllerявляется подклассом tk.Tk. Controllerидентичен, tk.Tkно с улучшениями. Таким образом, выполнение something=Controller(...)служит той же цели, что и something=tk.Tk().

Что мне делать, если я хочу добавить больше виджетов в ту же программу / то же окно,

Использовать selfкак родительский, если внутри класса, использовать экземпляр класса, если снаружи.

class Controller(tk.Tk):
    def __init__ (self, *args, **kwargs):
        ...
        self.some_widget = tk.Label(self, ...)

... а также ...

root = Controller()
some_other_widget = tk.Label(root, ...)

Означает ли это, что фрейм parentObj является оконным / крайним слоем фрейма в этом приложении?

Нет. Самый дальний «слой» - это пример Controller. Это корневое окно. parentObjживет внутри этого окна.

Для чего tk.Tk.__init__(self, *args, **kwargs)здесь?

Это просто стандартный способ Python для подкласса инициализировать свой родительский класс.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Графический интерфейс пользователя с TK - положение кнопок и действия

Почему несколько экземпляров Tk не рекомендуется?

Что на самом деле делает вызов Tk ()?

изменение цвета фона записи tk в режиме только для чтения

Tk копирует в буфер обмена, только если перед выходом из программы используется "вставить"

Сохранение объектов с холста tk

почему ключевые аргументы, регулирующие размер холста tk, не работают после добавления кнопки?

Использование очереди для синхронизации объекта Tk

Почему вы наследуете главное окно Tk?

Как открыть несколько окон Tk () одновременно?

Как получить доступ к содержимому полей ввода tk, созданных в цикле?

Получение цветовых кодов текущей палитры tk

Поля со списком TK и ограничение их размера

Вызов функции с помощью привязки в текстовом виджете tk

Вызов функции с помощью привязки в текстовом виджете tk

Поддерживает ли текстовый виджет TK настраиваемые текстовые декораторы?

Создание нескольких переменных во время каждой итерации цикла for и выполнение на них команд tk

кнопка tk меняет внешний вид

Почему я не могу сохранить текст из текстового виджета Tk в переменной

объект 'модуль' не имеет атрибута 'TK'

Уничтожить виджет в Tk не работает

Сделать окно верхнего уровня следующим за корневым окном Tk

Доступ к глобальной метке в функции с использованием пути в Tk

Различные методы доступа к значению поля ввода в Tk

Невозможно уничтожить объект Tk изнутри обратного вызова его виджета

Окно tk не отображается, даже если есть основной цикл

Появляется дополнительное окно Tk ()

Уничтожение метки в Tk

центрирование текста внутри кнопки в tk

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    How to click an array of links in puppeteer?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    Нарисуйте диаграмму с помощью highchart.js

  6. 6

    无法通过Vue在传单中加载pixiOverlay

  7. 7

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  8. 8

    Статус HTTP 403 - ожидаемый токен CSRF не найден

  9. 9

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  10. 10

    ContentDialog.showAsync в универсальном оконном приложении Win 10

  11. 11

    В UICollectionView порядок меняется автоматически

  12. 12

    Merging legends in plotly subplot

  13. 13

    Elasticsearch - Нечеткий поиск не дает предложения

  14. 14

    Bogue étrange datetime.utcnow()

  15. 15

    Объединение таблиц в листе Google - полное соединение

  16. 16

    Single legend for Plotly subplot for line plots created from two data frames in R

  17. 17

    как я могу удалить vue cli 2?

  18. 18

    ViewPager2 мигает / перезагружается при смахивании

  19. 19

    Компилятор не знает о предоставленных методах Trait

  20. 20

    JDBI - В чем разница между @define и @bind в JDBI?

  21. 21

    проблемы с AVG и LIMIT SQL

популярныйтег

файл