tak.lol

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!
Комментарии к материалу
Комментировать
Ваш комментарий: