API
create_window
create_window(title, url='', js_api=None, width=800, height=600, resizable=True,\
fullscreen=False, min_size=(200, 100), strings={}, confirm_quit=False, \
background_color='#FFF', debug=False, text_select=False)
Create a new pywebview window. Calling this function for the first time will start the application and block program execution. You have to execute your program logic in a separate thread. Subsequent calls to create_window
will return a unique window uid
, which can be used to refer to the specific window in the API functions. Single-window applications need not bother about the uid
and can simply omit it from function calls.
title
- Window titleurl
- URL to load. If the URL does not have a protocol prefix, it is resolved as a path relative to the application entry point.js_api
- Expose ajs_api
class object to the DOM of the currentpywebview
window. Callable functions ofjs_api
can be executed using Javascript page viawindow.pywebview.api
object. Custom functions accept a single parameter, either a primitive type or an object. Object types are converted between Javascript and Python. Functions are executed in separate threads and are not thread-safe.window.pywebview
is not guaranteed to be available onwindow.onload
and its access must be deferred.width
- Window width. Default is 800px.height
- Window height. Default is 600px.resizable
- Whether window can be resized. Default is Truefullscreen
- Whether to start in fullscreen mode. Default is Falsemin_size
- a (width, height) tuple that specifies a minimum window size. Default is 200x100strings
- a dictionary with localized strings. Default strings and their keys are defined in localization.pyconfirm_quit
- Whether to display a quit confirmation dialog. Default is Falsebackground_color
- Background color of the window displayed before WebView is loaded. Specified as a hex color. Default is white.debug
- Enabled debug mode. See debugging for detailstext_select
- Enables document text selection. Default is False. To control text selection on per element basis, use user-select CSS property.
The functions below must be invoked after a pywebview window is created, otherwise an exception is thrown.
In all cases, uid
is the uid of the target window returned by create_window()
; if no window exists with the given uid
, an exception is thrown. Default is 'master'
, which is the special uid given to the first window.
Examples
create_file_dialog
create_file_dialog(dialog_type=OPEN_DIALOG, directory='', allow_multiple=False, save_filename='', file_types=())`
Create an open file (webview.OPEN_DIALOG
), open folder (webview.FOLDER_DIALOG
) or save file (webview.SAVE_DIALOG
) dialog.
Return a tuple of selected files, None if cancelled.
allow_multiple=True
enables multiple selection.directory
Initial directory.save_filename
Default filename for save file dialog.file_types
A tuple of supported file type strings in the open file dialog. A file type string must follow this format"Description (*.ext1;*.ext2...)"
.
If the argument is not specified, then the "All files (*.*)"
mask is used by default. The 'All files' string can be changed in the localization dictionary.
Examples
destroy_window
destroy_window(uid='master')
Destroy the specified WebView window.
evaluate_js
evaluate_js(script, uid='master')
Execute Javascript code in the specified window. The last evaluated expression is returned. Javascript types are converted to Python types, eg. JS objects to dicts, arrays to lists, undefined to None. Note that due implementation limitations the string 'null' will be evaluated to None. You must escape \n and \r among other escape sequences if they present in Javascript code. Otherwise they get parsed by Python. r'strings' is a recommended way to load Javascript.
get_current_url
get_current_url(uid='master')
Return the current URL in the specified window. None if no url is loaded.
load_css
load_css(css, uid='master')
Load CSS as string into the specified window.
load_html
load_html(content, base_uri=base_uri(), uid='master')
Load HTML code into the specified window. Base URL for resolving relative URLs is set to the directory the program is launched from. Note that you cannot use hashbang anchors when HTML is loaded this way.
load_url
load_url(url, uid='master')
Load a new URL into the specified pywebview window.
set_title
set_title(title, uid='master')
Change the title of the window
toggle_fullscreen
togle_fullscree(uid='master')
Toggle fullscreen mode of a window on the active monitor.
window_exists
window_exists(uid='master')
Return True if a pywebview window with the given uid is up and running, False otherwise.
config
config.gui = 'qt' | 'gtk'
Force GUI library to either GTK or QT. The same setting can be controlled via PYWEBVIEW_GUI
environmental variable