Название | Создание настольных Python приложений с графическим интерфейсом пользователя |
---|---|
Автор произведения | Тимур Машнин |
Жанр | Компьютеры: прочее |
Серия | |
Издательство | Компьютеры: прочее |
Год выпуска | 2021 |
isbn |
И оно работает на вашем компьютере.
Вопрос – как его передать другим людям, чтобы они тоже могли его запустить?
Вы можете попросить пользователей вашего приложения установить 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, чтобы превратить файл питона в отдельный исполняемый