Шрифт:
Создадим метку и методом setAlignment установим ее посередине.
Методом setCentralWidget добавим метку в окно QMainWindow.
В результате после вызова команды fbs run мы увидим окно с меткой.
Более подробно про окно QMainWindow можно посмотреть в
QT
документации.
Теперь, приложениям обычно требуются дополнительные файлы данных помимо исходного кода – например, изображения.
И вот здесь может быть полезен ApplicationContext.
Вы можете поместить ресурсы приложения в папку resources, и чтобы упростить загрузку ресурсов из папки resources, fbs предоставляет метод ApplicationContext.get_resource.
Этот метод принимает имя файла, который можно найти в папке resources, и возвращает абсолютный путь к этому файлу.
И вы можете использовать этот возвращенный абсолютный путь, чтобы открыть файл.
Папка resources должна содержать папку base плюс любую комбинацию других папок.
Базовая папка содержит файлы, общие для всех операционных систем, в то время как папки для конкретных платформ могут использоваться для файлов, специфичных для данной ОС.
Теперь, далее мы можем использовать fbs, чтобы превратить файл питона в отдельный исполняемый файл.
Для этого в терминале наберем команду fbs freeze.
Эта команда помещает исполняемый двоичный файл в целевую папку текущего каталога.
Далее мы можем создать установщик приложения.
Но для начала мы должны установить NSIS – систему с открытым исходным кодом для создания установщиков Windows.
Также нужно добавить каталог NSIS в переменную среды
Windows
PATH.
После этого нужно перезапустить среду разработки PyCharm, чтобы она увидела эти изменения.
Далее создадим установщик с помощью команды fbs installer.
Эта команда помещает исполняемый двоичный файл в целевую папку текущего каталога.
Теперь вы можете отправлять его для установки приложения.
Виджеты и компоновки PyQt
Система компоновки Qt предоставляет простой и мощный способ организации дочерних виджетов внутри родительского виджета.
Qt предоставляет набор классов управления компоновкой.
Эти компоновки автоматически позиционируют и изменяют размер виджетов.
И все виджеты Qt могут использовать компоновки для управления своими дочерними элементами с помощью функции setLayout.
Здесь мы с помощью компоновки QHBoxLayout располагаем метки горизонтально в окне QWidget.
Компоновка QVBoxLayout размещает метки вертикально.
Компоновка QGridLayout располагает элементы в сетке.
При этом для каждого элемента можно указать строку, столбец, в которых должен находиться элемент.
Также можно указать затем сколько строк и столбцов должен заполнять элемент.
Компоновка QFormLayout добавляет два виджета в строку, обычно QLabel и QLineEdit для создания форм.
В качестве резюме – виджеты могут иметь в качестве родительских только другие виджеты, но не компоновки.
Но вы можете вкладывать компоновки в родительскую компоновку с помощью метода addLayout, тогда внутренний макет становится дочерним по отношению к макету, в который он вставлен.
Теперь, модуль Qt Widgets предоставляет набор элементов пользовательского интерфейса для создания пользовательских интерфейсов приложения.
И все, что вы видите в приложении PyQt, представляет собой виджеты: кнопки, метки, окна, диалоговые окна, индикаторы выполнения и т. д.
С меткой мы уже познакомились.
При создании метки, передавая в конструктор в качестве параметра объект окна, мы сообщаем, что метка является частью окна.