Разработка приложений с Python 3, Glade и GTK + 3 в Windows

Введение

В GNU / Linux разработка приложений с использованием Python 3, Glade и GTK + 3 очень проста, пакеты входят в состав большинства дистрибутивов по умолчанию.

Через просека мы можем быстро и легко создавать пользовательские интерфейсы, а затем использовать их вместе с Python. Для этого вы используете PyGObject благодаря системе самоанализа, предлагаемой GNOME, которая значительно облегчает быструю разработку приложений (RAD); также можно использовать наши интерфейсы, созданные с помощью Glade, из других языков программирования.

Проблема возникает, когда мы хотим использовать наши приложения в Microsoft Windows, поскольку до недавнего времени не было официальных пакетов для этой системы.

В этом руководстве предполагается, что приложения, созданные в GNU / Linux с использованием Python 3 и GTK + 3, без проблем запускаются в Windows.

требования

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 или выше (дизайнер GUI)
  • пигообъект

Установка в Windows

Он начнется с создания папки с именем программное обеспечение или другое по вашему выбору, и мы сохраним в нем все загруженные пакеты.

Скачать установочные пакеты

Скачать Python 3.3

Его можно скачать с официальной страницы Python www.python.org

Скачать установщик Python

Скачать установщик Python

Нажав на ссылку (Установщик Windows) установщик Python загрузится.

Скачать Glade

Сайт загрузки: Glade.gnome.org

Обе версии Python и Glade являются 32-битными, но они безупречно работают на 64-битных системах.

Glade Page

Glade Page

Скачать PyGObject

Сайт загрузки: https://wiki.gnome.org/PyGObject

Надо скачать версию для GTK + 3

PyGObject

PyGObject

PyGObject в коде Google

PyGObject в коде Google

Установка пакетов

К этому моменту у нас уже есть все загруженные пакеты в папке программное обеспечение и поскольку мы загрузили каждый пакет, мы начнем сначала с установки Python.

Загруженные пакеты

Загруженные пакеты

Установка Python

Установка очень проста, мастер проведет нас через весь процесс; Все варианты оставляем отмеченными по умолчанию.

Программа установки Python

Программа установки Python

Как видно на изображении, Python устанавливается в папку C: \ Python33 \ По умолчанию мы оставляем все как есть и продолжаем установку.

Папка установки Python

Папка установки Python

На этом этапе установки выбираем опцию Добавьте python.exe в путь, с той целью, чтобы при запуске интерпретатора Python он выполнялся без необходимости добавлять его в системный путь вручную.

Добавить Python в системный путь

Добавить Python в системный путь

Затем мы завершаем установку, и Python будет установлен в нашей системе.

Установка поляны

Установка Glade не представляет серьезного осложнения, мы запускаем программу установки и следуем инструкциям мастера.

Установить поляну

Установить поляну

Установка PyGObject

Мы скачали пакет pygi-aio-3.4.2rev11.7z, этот пакет включает библиотеки PyGObject для Python 3.3 и GTK + 3 для Windows, сжатые с помощью 7-молнии, разархивируем и у нас будет папка со следующим содержимым:

Содержимое папки pygi-aio-3.4.2rev11.7

Содержимое папки pygi-aio-3.4.2rev11.7

Теперь копируем папку GTK a C: \ Python33 \ Lib \ сайты-пакеты где установлены сторонние пакеты для Python.

Скопируйте папку gtk

Скопируйте папку gtk

Папка Gtk в C: \ Python33 \ Lib \ site-packages

Папка Gtk в C: \ Python33 \ Lib \ site-packages

Возвращаемся в нашу папку pygi-aio-3.4.2rev11 и открываем папку py33 для версии Python - 3.3

Содержимое папки py33

Содержимое папки py33

Мы выбираем весь контент Папка py33 и копируем обратно в папку C: \ Python33 \ Lib \ сайты-пакеты, нас попросят смешать и перезаписать, мы отвечаем утвердительно. Содержимое папки сайты-пакеты это будет так, как показано на следующем изображении:

Скопируйте содержимое папки py33 в C: \ Python33 \ Lib \ site-packages

Скопируйте содержимое папки py33 в C: \ Python33 \ Lib \ site-packages

Проверка правильности установки PyGobject и GTK + 3

Чтобы проверить правильность нашей установки, мы открываем Python IDLE и импортируем библиотеки GTK + 3, и если у нас нет сообщений об ошибках, все будет сделано правильно.

from gi.repository import Gtk

PyGobject и GTK + 3 установлены правильно

PyGobject и GTK + 3 установлены правильно


24 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Хоакин сказал

    А почему ГТК? Разве не лучше было бы развиваться в QT? помимо того, что он мультиплатформенный, и многие говорят, что это будущее

    1.    Artus сказал

      Что ж, две замечательные графические библиотеки на рабочем столе GNU / Linux - это GTK и QT, каждая из которых выбирает ту, которую предпочитает. Нет причин драться.

      Разница между GTK и QT в том, что последний представляет собой фреймворк, действительно очень хороший, но будучи фреймворком, он потребляет немного больше ресурсов.

      Например, Mozilla Firefox, Google Chrome, LibreOffice и многие другие созданы с использованием GTK; Это не значит, что он лучше QT, каждый должен выбрать тот, который соответствует его предпочтениям и потребностям, мы не хотим вызывать по этому поводу дискуссию.

      1.    пандев92 сказал

        Google Chrome с версии 33, оставьте gtk.

  2.   Роло сказал

    и почему объяснение для Windows, а не для Linux

    1.    Germán сказал

      Это потому, что в Linux все уже упаковано и находится в официальных репозиториях каждого дистрибутива? В Fedora, например, у меня уже установлены Python 3, Gtk + 3 и PyGobject по умолчанию. Если я хочу Glade, это просто «yum install glade». Легко, правда? 🙂

    2.    Artus сказал

      Потому что, как говорит Херман, для дистрибутивов GNU / Linux они уже упакованы, и их очень легко установить; например установить glade в Debian очень просто:
      возможность установить поляну

  3.   Marcelo сказал

    Если я захочу использовать Python 2.7, шаги будут такими же?
    Очевидно, что при установке 2.7-битного Python 32 (даже если вы используете 64-битную ОС) вместо папки py33 пойдет 2.7. Это сработает?
    Спасибо.

    1.    Artus сказал

      Ну да, если у вас возникнут проблемы, оставьте мне комментарий.

      Удачи.

      1.    Marcelo сказал

        Спасибо, уже попробовал и пока "Hello world" у меня работает.

        Я посмотрю, смогу ли я получить хороший учебник по pyGTK3 или как там он называется, и любые проблемы, предупреждение.

        1.    Artus сказал
          1.    Marcelo сказал

            Карамба! Большое спасибо!

          2.    Marcelo сказал

            Тестирование GTK3 с Python 2.7 в Windows и следование руководству. Пока все программы у меня работают, кроме одной в главе 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Это дает мне следующую ошибку:
            Traceback (последний последний вызов):
            Файл "C: \ Users \ User \ Desktop \ test.py", строка 24, в
            win = IconViewWindow ()
            Файл «C: \ Users \ User \ Desktop \ test.py», строка 19, в __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (значок, 64, 0)
            Файл "C: \ Python27 \ lib \ site-packages \ gi \ types.py", строка 47, в функции
            return info.invoke (* args, ** kwargs)
            GError: Значок 'gtk-cut' отсутствует в теме

            Я пробовал использовать другие значки, но они тоже не работают. Мне нужно установить тему? Спасибо сейчас.

          3.    Marcelo сказал

            То же самое и в примере 19. Перетаскивание.

            В обоих случаях вызывается функция, при которой я получаю сообщение об ошибке:

            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)

            Я не могу найти значок, но в других примерах вы можете их использовать. Это дает мне ошибку только тогда, когда я хочу использовать его с этой функцией (здесь icon_name можно заменить на значение, такое как Gtk.STOCK_CUT или что-то еще, и это дает точно такую ​​же ошибку).

          4.    Marcelo сказал

            Я продолжаю разговаривать сам с собой. В других примерах меня работает то, что изображения загружаются на кнопки. Я не могу загрузить значки с помощью функции, представленной в двух приведенных ранее примерах.

          5.    Artus сказал

            Думаю, ошибка понятна:
            GError: Значок 'gtk-cut' отсутствует в теме

            Видно, что этот значок недоступен, используйте другой значок. Вероятно, сопровождающий пакета не включил значки темы или его нельзя найти в пути по умолчанию, используйте дистрибутив GNU / Linux и посмотрите, появляется ли по-прежнему та же ошибка.

            Что касается вопроса 19, похоже, он связан с версией PyGobject, в верхней части документации говорится:

            Внимание
            Версия PyGObject = 3.0.3 требуется для работы следующих примеров.

            У вас версия 3.0, попробуйте дистрибутив GNU / Linux; а затем мы должны дождаться, пока они обновят пакет (для Windows) или, в любом случае, вы можете скомпилировать его самостоятельно.

            Приветствую и идем дальше.

          6.    Marcelo сказал

            В Ubuntu все учебные примеры идеально подходят для меня. В Windows это все равно не работает. Придется подождать. Другой пример, который не ходит, - это Spinner, который не выполняет анимацию. Привет и спасибо.

  4.   yoshua сказал

    Я выполнил инструкции по установке и установил все шаг за шагом.
    И выполняем следующий код:
    из gi.repository import Gtk

    класс FiestraPrincipal:
    def __init __ (сам):
    filename = "/ data / dam / Примеры Python / Saudoform"
    конструктор = Gtk.builder ()
    constructor.add_from_file (имя файла)
    # словарь, где мы связываем синая с событиями
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Мы получаем ссылку на дескриптор XML для доступа к
    self.label = self.widgets_widget («Ярлык»)
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (сам, виджет):
    текст = self.cadroTexto.get_text ()
    self.label.set_text ("волна% s"% текст)

    if __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Я получаю такой ответ:
    Traceback (последний последний вызов):
    Файл «C: / Users / admin / Google Drive / test / SaudoForm.py», строка 3, в
    из gi.repository import Gtk
    Файл "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", строка 27, в
    из ._gi import _API, Repository
    ImportError: Ошибка загрузки DLL:% 1 не является допустимым приложением Win32.

    Кто-то знает, в чем проблема и каково ее возможное решение.
    Большое спасибо.

  5.   Иисус сказал

    Интересно. Я выполнил установку в Linux, но объяснение для окон в порядке, теперь оно есть в обоих. 😉

  6.   Рафа Кармона сказал

    На 7-битной винде 32 смешно первое время.
    На 7-битной Windows 64 я не могу заставить ее работать, у меня всегда получается;
    >>> из gi.repository import Gtk
    Traceback (последний последний вызов):
    Файл «», строка 1, в
    Файл "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", строка 27, в
    из ._gi импорт _API
    ImportError: Ошибка загрузки DLL: указанный процесс не найден.

    Все равно пробовал, иллюзию установки уже потерял.

    1.    Artus сказал

      Вы увидите, что в 64-битных библиотеках все еще есть некоторые ошибки, пожалуйста, установите 32-битную версию как python, так и GTK +, чтобы у вас не было проблем.

      Никогда не теряйте иллюзий 🙂

  7.   Ричард сказал

    Привет, я работаю с python + gtk3, это очень хорошо, теперь у меня небольшая проблема. Я хочу изменить значок на свою форму (окно) в этом случае, и я могу изменить его, заранее спасибо, Приветствую

  8.   Джорс сказал

    публиковать простые видео о том, как программировать в gtk + 3, и приветствия простые учебники

  9.   Хосе сказал

    Отличный учебник. Большое спасибо за ваши усилия. С уважением.

  10.   джкмило1030 сказал

    Я выполнил все шаги, и когда я доверился установке, я получил эту ошибку.

    Traceback (последний последний вызов):
    Файл «», строка 1, в
    из gi.repository import Gtk
    ImportError: нет модуля с именем 'gi'