Библиотека wxHTML и iewin содержат классы для анализа и отображения содержимого HTML.
Хотя этот браузер не предназначен для использования в качестве полнофункционального браузера, объект IEHtmlWindow может служить универсальным средством просмотра HTML.
Хотя для использования этого браузера понадобится установка дополнительного модуля comtypes, питон COM-пакета.
SplitterWindow — это специальная компоновка, которая содержит два подокна, размер которых можно динамически изменять, перетаскивая границы между ними.
Класс SplitterWindow имеет очень простой конструктор с параметрами, имеющими значения по умолчанию.
В этом примере SplitterWindow добавляется к фрейму верхнего уровня.
Одна панель предназначена для хранения многострочного поля TextCtrl.
Список ListBox помещается на другую панель.
И SplitterWindow разделяет по вертикали окно, и две панели добавляются в подокна.
Ширину подокон можно изменять с помощью перетаскивания границы.
Библиотека wxPython содержит набор виджетов Book, которые позволяют пользователю переключаться между различными панелями в окне.
Это такие виджеты как Notebook, Choicebook, Listbook и Treebook.
Виджет Notebook представляет собой окно с вкладками или страницами.
И пользователь может переключаться между страницами, щелкая заголовок соответствующей вкладки.
Объекты этих вкладок добавляются как страницы в Notebook во фрейме верхнего уровня.
API рисования wxPython предлагает различные функции для рисования форм, текста и изображений.
Объекты, необходимые для рисования, такие как цвет, перо, кисть и шрифт, могут быть созданы с использованием классов интерфейса.
Класс PaintDC используется для рисования в клиентской области окна, с помощью события PaintEvent.
Существуют также такие классы как ScreenDC, который используется для рисования на экране, и ClientDC, который используется для рисования в клиентской области окна без события PaintEvent.
Класс Colour представляет собой комбинацию значений RGB и есть также предопределенные цветовые объекты, такие как BLACK, BLUE, GREEN и так далее.
Цвет с произвольной комбинацией значений RGB формируется как объект Colour.
Объект Pen определяет цвет, ширину и стиль форм, таких как линия, прямоугольник, круг и т. д.
Кисть Brush — это еще один графический объект, необходимый для заливки фона таких фигур, как прямоугольник, эллипс, круг и т. д.
Для настраиваемого объекта Brush требуются параметры стиля Colour и Brush.
Здесь пример показывает использование объектов Pen, Brush, Color и Font.
Dear PyGUI
Dear PyGui — это простой и мощный фреймворк графического интерфейса пользователя Python.
Dear PyGui — это библиотека, созданная с помощью библиотеки С++ Dear ImGui, для имитации традиционного графического интерфейса.
Dear PyGui отличается от других графических интерфейсов Python тем, что под капотом Dear PyGui использует графический процессор компьютера для отрисовки динамических интерфейсов.
Dear PyGui не использует нативные виджеты, а вместо этого использует графическую карту компьютера для непосредственной отрисовки.
Для установки библиотеки Dear PyGui создадим проект в
PyCharm
и в окне терминала наберем команду pip install dearpygui.
Существует онлайн документация библиотеки, где можно посмотреть все функции и параметры.
Dear PyGui состоит из окна программы, окон и виджетов.
Окно программы — это главное окно программы, которое создается в конце основного скрипта Python с помощью вызова функции start_dearpygui.
Dear PyGui состоит из двух модулей core и simple.
Модуль core содержит базовую функциональность Dear PyGUI.
Модуль simple содержит простые оболочки и другие утилиты, созданные из core, чтобы обеспечить более удобный интерфейс Dear PyGui.
Методом set_main_window_size мы устанавливаем размер основного окна.
Это самое большое черное окно.
Метод window модуля simple является оберткой метода add_window модуля core.
Этот метод добавляет окно в основное окно.
И в это добавленное окно мы уже добавляем элементы методом add.
Здесь мы добавили текст, кнопку, поле ввода и слайдер.
Теперь, как изменять внешний вид окна.
Мы вызываем метод show_style_editor, который открывает окно редактора.
Здесь это окно ниже.
В этом окне мы меняем размеры и цвета и нажимаем кнопку Save, где она есть, и кнопку Export.
При этом в буфер копируется код изменения внешнего вида.
Мы сохраняем этот код в блокноте и можем выбрать там нужный нам метод и перенести его уже в наш код.
Здесь мы выбрали метод set_theme_item с параметром WindowBg, для изменения цвета фона окна, который стал светлым, а не темным как по умолчанию.
Далее мы уже убираем метод show_style_editor из нашего кода, чтобы не показывать редактор стилей.
Параметр callback позволяет связать обработчик с кнопкой, чтобы выполнять код при нажатии пользователем кнопки.
В документации легко посмотреть все методы для добавления виджетов в окно.
У каждого виджета должно быть уникальное имя.
По умолчанию имя присваивается как метка виджета, если это применимо.
Если вы хотите изменить метку виджета, вы можете поместить две решетки «##» в конце имени и все, что будет после решеток «##» будет скрыто от отображаемого имени.
Также вы можете использовать ключевое слово label, которое будет отображать метку вместо имени виджета.
Некоторые имена виджетов создаются автоматически, например для виджета same_line.
Однако у них есть необязательное ключевое слово name, которое можно указать, если вам понадобится ссылаться на виджет позже.
По умолчанию виджеты создаются в порядке их кодирования.
Однако элементы могут быть добавлены не по порядку, если указать родительский контейнер.
Использование ключевого слова parent вставит виджет в конец дочернего списка родителя.
Если вы хотите вставить его в другое место, используйте ключевое before в сочетании с ключевым словом parent, чтобы поместить элемент перед другим виджетом в дочернем списке.
Каждый виджет ввода имеет значение, которое можно установить с помощью ключевого слова default_value при создании, или во время выполнения командой set_value.
Чтобы получить доступ к значению виджета, мы можем использовать команду get_value.
Каждый виджет ввода имеет обработчик, который запускается при взаимодействии с виджетом.
Обработчики могут быть назначены виджету при создании или после создания с помощью метода set_item_callback.