Сначала начните рассматривать это в перспективе.
Вы будете использовать GTK. Это огромная библиотека C, построенная в 1993 году с использованием лучших традиций стиля кодирования 1970-х годов. Он был создан для того, чтобы помочь реализовать GIMP, конкурента Photoshop, желающего избежать грубых ошибок в пользовательском интерфейсе. Типичное поле графического интерфейса может иметь сорок или более параметров, в основном повторяющихся, имеющих геттеры и сеттеры. Будет боль.
Сам GTK управляет полной системой динамических типов в C, используя GObject. Это делает отладку особой радостью, которая требует ручного обхода массивов указателей на методы, полные общих списков аргументов с неявным наследованием. Вы также будете прыгать через библиотеки Pango, когда вы меньше всего этого ожидаете, например, используя константу Pango для того, где в метке идет многоточие, когда страница маленькая. Ожидайте больше боли.
К настоящему времени вы, вероятно, обещаете обернуть все ваши взаимодействия GTK в архитектуру Model-View-Controller, специфичную для вашего приложения. Это хорошо.
Использование Glade, или gtkBuilder, или Stetic, поможет решить огромную проблему связи сорока параметров с функцией. Glade предоставляет базовый конструктор графического интерфейса для перетаскивания компонентов вместе. Параметры и унаследованные параметры несколько разделены. Результатом Glade является XML-файл .glade, который вы затем прочитаете, присоедините ваши обратные вызовы («обработчики сигналов») к функциям с одинаковыми именами и запросите или обновите версию этого XML в памяти, чтобы получить виджеты, которые вы затем используете pyGTK. манипулировать. Сама полянка скрипучая и не очень ухоженная.
Использование pyGTK дает вам досадно мелкозернистый контроль для построения вашего GUI. Это будет подробный, скопируйте и вставьте код. Каждый атрибут будет отдельным вызовом функции. Атрибут-установщик ничего не возвращает, поэтому о цепочке вызовов не может быть и речи. Как правило, ваша среда IDE дает лишь минимальную справку о том, что означают функции, и вы будете постоянно ссылаться на DevHelp или какой-либо другой инструмент.
Можно было бы ожидать, что графические интерфейсы GTK должны были дать сбой.