Skip to content
大纲链接

window

window 窗口对象,由 webview.create_window 函数返回得到。

Python
window = webview.create_window('窗口示例', 'https://blog.pangao.vip/docs-ppx/')

window.on_top

获取或设置窗口是否始终位于顶部

Python
window.on_top

window.x

获取窗口左上角的 X 坐标

Python
window.x

window.y

获取窗口左上角的 Y 坐标

Python
window.y

window.width

获取窗口的宽度

Python
window.width

window.height

获取窗户的高度

Python
window.height

window.set_title

设置窗口的标题

Python
window.set_title(title)

window.toggle_fullscreen

在活动显示器上切换窗口的全屏模式。

Python
window.toggle_fullscreen()

window.resize

调整窗口大小。可选参数 fix_point 指定窗口调整大小的点。该参数接受 webview.window.FixPoint 枚举(NORTHSOUTHEASTWEST)的值。

Python
window.resize(width, height, fix_point=FixPoint.NORTH | FixPoint.WEST)

window.move

将窗口移动到新位置。

Python
window.move(x, y)

window.minimize

最小化窗口。

Python
window.minimize()

window.restore

恢复最小化的窗口。

Python
window.restore()

window.hide

隐藏窗口。

Python
window.hide()

window.show

展示被隐藏的窗口。

Python
window.show()

window.destroy

销毁窗口。

Python
window.destroy()

window.create_confirmation_dialog

创建一个确认(确定/取消)对话框。

Python
window.create_confirmation_dialog()
示例
Python
import webview


def open_confirmation_dialog(window):
    result = window.create_confirmation_dialog('提示', '你准备好了吗?')
    if result:
        print('确定')
    else:
        print('取消')


if __name__ == '__main__':
    window = webview.create_window('确认对话框示例', 'https://blog.pangao.vip/docs-ppx')
    webview.start(open_confirmation_dialog, window)

window.create_file_dialog

创建打开的文件(webview.OPEN_DIALOG)、打开文件夹(webview.FOLDER_DIALOG)或保存文件(webview.SAVE_DIALOG)对话框。

Python
window.create_file_dialog(dialog_type=webview.OPEN_DIALOG,
                          allow_multiple=False, save_filename='',
                          directory='', file_types=())

返回所选文件的元组,如果取消,则返回 None

  • allow_multiple 是否启用多选模式。默认为 False
  • directory 初始目录。
  • save_filename 保存文件对话框的默认文件名。
  • file_types 打开文件对话框中支持的文件类型字符串的元组。文件类型字符串必须遵循此格式Description (*.ext1;*.ext2...)。如果未指定参数,则默认使用全部文件 (*.*) 掩码。
示例

加载页面内容后创建一个打开的文件对话框。

Python
import webview


def open_file_dialog(window):
    file_types = ('图片文件 (*.bmp;*.jpg;*.gif)', '全部文件 (*.*)')

    result = window.create_file_dialog(webview.OPEN_DIALOG, allow_multiple=True, file_types=file_types)
    print(result)


if __name__ == '__main__':
    window = webview.create_window('Open file dialog example', 'https://blog.pangao.vip/docs-ppx')
    webview.start(open_file_dialog, window)

window.evaluate_js

执行 Javascript 代码。返回最后一个求值表达式。如果提供了回调函数,则 promises 将被解析,并将结果作为参数调用回调函数。更多细节,请查看 域间通信

Python
window.evaluate_js(script, callback=None)

window.expose

将一个或多个 Python 函数暴露给 JS API。函数暴露为 window.pywebview.api.func_name

Python
window.expose(func_name)

window.get_current_url

返回当前 URL。如果没有加载 URL,则返回 None

Python
window.get_current_url()

window.load_html

加载 HTML 代码。

Python
window.load_html(content, base_uri=base_uri())
示例
Python
import webview
import time


def load_html(window):
    time.sleep(5)
    window.load_html('<h1>动态加载 HTML</h1>')


if __name__ == '__main__':
    window = webview.create_window('加载 HTML 示例', html='<h1>初始化 HTML</h1>')
    webview.start(load_html, window)

window.load_url

加载 URL 。

Python
window.load_url(url)
示例
Python
import webview
import time


def change_url(window):
    time.sleep(10)
    window.load_url('https://blog.pangao.vip')


if __name__ == '__main__':
    window = webview.create_window('加载 URL 示例', 'https://blog.pangao.vip/docs-ppx')
    webview.start(change_url, window)

window.events

窗口对象有许多生命周期事件。要订阅事件,请使用 += 语法,例如 window.events.loaded += func 。当事件被触发时,将调用函数。重复订阅被忽略,重复订阅者只能调用一次功能。取消订阅 window.events.loaded -= func

Python
import webview
import time


def on_shown():
    print('窗口显示时')


def on_loaded():
    print('DOM准备就绪时')
    webview.windows[0].events.loaded -= on_loaded
    webview.windows[0].load_url('https://blog.pangao.vip')


def on_minimized():
    print('窗口最小化时')


def on_restored():
    print('窗口恢复时')


def on_maximized():
    print('窗口最大化时')


def on_resized(width, height):
    print('窗口调整大小时,新的窗口大小为: {width} x {height}'.format(width=width, height=height))


def on_moved(x, y):
    print('窗口移动时,新的坐标 x: {x}, y: {y}'.format(x=x, y=y))


def on_closing():
    print('窗口正在关闭')


def on_closed():
    print('窗口关闭')


if __name__ == '__main__':
    window = webview.create_window('事件示例', 'https://blog.pangao.vip/docs-ppx/', confirm_close=True)

    window.events.shown += on_shown
    window.events.loaded += on_loaded
    window.events.minimized += on_minimized
    window.events.maximized += on_maximized
    window.events.restored += on_restored
    window.events.resized += on_resized
    window.events.moved += on_moved
    window.events.closing += on_closing
    window.events.closed += on_closed

    webview.start()