Создание настольных Python приложений с графическим интерфейсом пользователя. Тимур Машнин

Читать онлайн.



Скачать книгу

у нас есть приложение с графическим интерфейсом пользователя.

      И оно работает на вашем компьютере.

      Вопрос – как его передать другим людям, чтобы они тоже могли его запустить?

      Вы можете попросить пользователей вашего приложения установить Python и PyQt, а затем предоставить им свой исходный код.

      Но это очень неудобно.

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

      В Python процесс превращения исходного кода в автономный исполняемый файл называется замораживанием.

      Хотя существует множество библиотек, которые решают эту проблему, например PyInstaller, py2exe и так далее, здесь мы будем использовать библиотеку под названием fbs, которая позволяет создавать автономные исполняемые файлы для приложений PyQt.

      Поэтому для начала установим библиотеку fbs.

      Далее мы в терминале запускаем команду fbs startproject.

      В результате выполнения которой будет создана папка src/main/python/с файлом main.py.

      Команда startproject создает необходимую структуру папок для приложения fbs.

      Если мы наберем в терминале команду fbs run, откроется просто пустое окно.

      Теперь, как нам вставить в это окно нашу метку.

      Здесь вы можете заметить, что создание приложения с помощью fbs представляет новую концепцию – ApplicationContext.

      При создании приложений PyQt5 обычно используется ряд компонентов или ресурсов, которые используются во всем приложении.

      И ApplicationContext предоставляет центральное место для инициализации и хранения этих компонентов, а также предоставляет доступ к некоторым основным функциям fbs.

      Объект ApplicationContext также создает и содержит ссылку на глобальный объект QApplication, доступный в ApplicationContext.app, так как каждое приложение Qt должно иметь один и только один объект QApplication для хранения цикла событий и основных настроек.

      Теперь, чтобы вставить нашу метку, помимо QMainWindow импортируем метку.

      Создадим метку и методом setAlignment установим ее посередине.

      Методом setCentralWidget добавим метку в окно QMainWindow.

      В результате после вызова команды fbs run мы увидим окно с меткой.

      Более подробно про окно QMainWindow можно посмотреть в

      QT

      документации.

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

      И вот здесь может быть полезен ApplicationContext.

      Вы можете поместить ресурсы приложения в папку resources, и чтобы упростить загрузку ресурсов из папки resources, fbs предоставляет метод ApplicationContext.get_resource.

      Этот метод принимает имя файла, который можно найти в папке resources, и возвращает абсолютный путь к этому файлу.

      И вы можете использовать этот возвращенный абсолютный путь, чтобы открыть файл.

      Папка resources должна содержать папку base плюс любую комбинацию других папок.

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

      Теперь, далее мы можем использовать fbs, чтобы превратить файл питона в отдельный исполняемый