webview.create_window - создание нового окна
В библиотеке webview функция create_window используется для создания нового окна для отображения веб-контента. Вот основные параметры, которые можно использовать с этой функцией:
Параметры create_window
1. title: str:
• Описание: Заголовок окна.
• Тип: Строка.
• Пример: 'Мое приложение'.
2. url: str | None = None:
• Описание: URL-адрес, который будет загружен в окне. Если None, окно может отображать локальный HTML-контент.
• Тип: Строка или None.
• Пример: 'https://example.com'.
3. html: str | None = None:
• Описание: HTML-контент, который будет отображен в окне. Используется, если не указан url.
• Тип: Строка или None.
• Пример:
'<h1>Привет, мир!</h1>'.
4. js_api: Any = None:
• Описание: Объект, который будет доступен в jаvascript для взаимодействия с кодом Python.
• Тип: Любой тип.
• Пример: Объект класса с методами, которые могут вызываться из jаvascript.
5. width: int = 800:
• Описание: Ширина окна в пикселях.
• Тип: Целое число.
• Пример: 1024.
6. height: int = 600:
• Описание: Высота окна в пикселях.
• Тип: Целое число.
• Пример: 768.
7. x: int | None = None:
• Описание: Позиция окна по оси X. Если None, окно будет размещено по центру экрана.
• Тип: Целое число или None.
• Пример: 100.
8. y: int | None = None:
• Описание: Позиция окна по оси Y. Если None, окно будет размещено по центру экрана.
• Тип: Целое число или None.
• Пример: 100.
9. screen: Screen = None:
• Описание: Указывает экран, на котором должно открываться окно (например, для многомониторных систем).
• Тип: Объект типа Screen или None.
• Пример: Указание конкретного экрана.
10. resizable: bool = True:
• Описание: Указывает, можно ли изменять размер окна.
• Тип: Булево значение.
• Пример: False, если окно должно быть фиксированного размера.
11. fullscreen: bool = False:
• Описание: Указывает, должно ли окно открываться в полноэкранном режиме.
• Тип: Булево значение.
• Пример: True, если нужно открыть окно на весь экран.
12. min_size: tuple[int, int] = (200, 100):
• Описание: Задает минимальный размер окна (ширина, высота).
• Тип: Кортеж из двух целых чисел.
• Пример: (300, 200).
13. hidden: bool = False:
• Описание: Указывает, должно ли окно быть скрытым при создании.
• Тип: Булево значение.
• Пример: True, если окно должно быть скрыто до вызова метода отображения.
14. frameless: bool = False:
• Описание: Указывает, должно ли окно быть без рамки (без заголовка и границ).
• Тип: Булево значение.
• Пример: True, если требуется безрамочное окно.
15. easy_drag: bool = True:
• Описание: Включает режим легкого перетаскивания для безрамочного окна.
• Тип: Булево значение.
• Пример: False, если не требуется легкое перетаскивание.
16. shadow: bool = True:
• Описание: Указывает, должна ли у окна быть тень.
• Тип: Булево значение.
• Пример: False, если тень не нужна.
17. focus: bool = True:
• Описание: Указывает, следует ли активировать окно при его открытии.
• Тип: Булево значение.
• Пример: False, если окно не должно получать фокус.
18. minimized: bool = False:
• Описание: Указывает, должно ли окно открываться свернутым.
• Тип: Булево значение.
• Пример: True, если окно должно быть свернуто при открытии.
19. maximized: bool = False:
• Описание: Указывает, должно ли окно открываться развернутым.
• Тип: Булево значение.
• Пример: True, если окно должно быть развернуто при открытии.
20. on_top: bool = False:
• Описание: Указывает, должно ли окно оставаться поверх других окон.
• Тип: Булево значение.
• Пример: True, если окно должно быть всегда на переднем плане.
21. confirm_close: bool = False:
• Описание: Указывает, следует ли показывать диалог подтверждения закрытия окна.
• Тип: Булево значение.
• Пример: True, если требуется подтверждение перед закрытием.
22. background_color: str = '#FFFFFF':
• Описание: Цвет фона окна в формате HEX до загрузки содержимого.
• Тип: Строка.
• Пример: '#FF0000', для красного фона.
23. transparent: bool = False:
• Описание: Указывает, следует ли не рисовать фон окна (для создания прозрачных окон).
• Тип: Булево значение.
• Пример: True, если требуется прозрачность.
24. text_select: bool = False:
• Описание: Позволяет выделение текста на странице.
• Тип: Булево значение.
• Пример: True, если выделение текста разрешено.
25. zoomable: bool = False:
• Описание: Указывает, можно ли изменять масштаб содержимого окна.
• Тип: Булево значение.
• Пример: True, если масштабирование разрешено.
26. draggable: bool = False:
• Описание: Указывает, можно ли перетаскивать окно.
• Тип: Булево значение.
• Пример: True, если перетаскивание разрешено.
27. vibrancy: bool = False:
• Описание: Включает эффект прозрачности для окна на поддерживаемых системах (например, macOS).
• Тип: Булево значение.
• Пример: True, если требуется эффект вибрации.
28. localization: Mapping[str, str] | None = None:
• Описание: Словарь для локализации интерфейса (строка-ключ и строка-значение).
• Тип: Словарь или None.
• Пример: {'hello': 'Здравствуйте'} для локализации текста.
29. server: type[http.ServerType] = http.BottleServer:
• Описание: Класс сервера для обработки HTTP-запросов (например, Bottle).
• Тип: Класс типа сервера.
• Пример: Можно использовать другой сервер вместо Bottle.
30. http_port: int | None = None:
• Описание: Порт для HTTP-сервера. Если указано значение None, будет выбран случайный доступный порт.
• Тип: Целое число или None.
• Пример: 8080.
31. server_args: http.ServerArgs = {}
• Описание: Словарь аргументов для передачи при создании сервера (например, настройки).
• Тип: Словарь.
• *Пример: { 'key': 'value' }.
32. Window:
• *Описание: Указывает тип возвращаемого значения функции — объект окна (Window).
Пример использования
import webview
def open_website():
webview.create_window(
title='Сайт tak.lol',
url='https://tak.lol',
width=800,
height=600,
resizable=True,
fullscreen=False,
background_color='#FFFFFF'
)
webview.start()
if __name__ == '__main__':
open_website()
Эти параметры позволяют настроить окно под ваши нужды при создании приложения с использованием библиотеки webview.
Задания для закрепления материала
Задание 1: Простое окно
1. Создайте простое окно с заголовком "Мое первое окно" и размером 800x600.
2. Убедитесь, что окно открывается и отображается на экране.
Задание 2: Загрузка локального HTML-файла
1. Создайте HTML-файл с простым содержимым (например, заголовок и параграф).
2. Используйте webview.create_window для загрузки этого локального HTML-файла в окне.
Задание 3: Окно с кнопкой
1. Создайте HTML-файл, который содержит кнопку.
2. При нажатии на кнопку в окне должно появляться сообщение "Кнопка нажата!" (используйте jаvascript для обработки события).
Задание 4: Взаимодействие Python и jаvascript
1. Создайте окно с текстовым полем и кнопкой.
2. При нажатии на кнопку передавайте текст из текстового поля в Python и выводите его в консоль.
Задание 5: Окно с пользовательским интерфейсом
1. Создайте более сложный интерфейс с несколькими элементами (например, текстовое поле, кнопка и выпадающий список).
2. Реализуйте функциональность, чтобы при выборе элемента из выпадающего списка и нажатии кнопки выводилось соответствующее сообщение в консоль.
Эти задания помогут вам лучше понять, как использовать webview для создания окон и взаимодействия между Python и jаvascript!