Pywebview 2.0は、WebテクノロジーとPythonを組み合わせてGUIアプリケーションを作成するために使用できます.
2533 ワード
Pywebviewでは、ElectronのようなPythonライブラリが2.0バージョンリリースされています.Pywebviewでは、WebテクノロジーとPythonを組み合わせてGUIアプリケーションを作成できます.Pythonでアプリケーションの論理制御を行い、JavascriptとCSSを使用してGUIを生成することができます.Pywebviewはfreezeのサポートが良好で、プログラムの実行可能なパッケージを実現した.Pywebview2.0の最大の変化はPythonとJavascript間の双方向通信であり、Python Webサーバのニーズを完全に解消した.簡単なHello Worldを例に挙げて説明します.
ここには2つの通信モジュールがあります.jsとcreat_window. evaluate_を使用できます.jsはPythonから任意のJavascriptコードを実行し、結果を返します.JavascriptからPythonコードを実行するには、カスタムクラスを定義し、そのインスタンスをcreate_に渡す必要があります.WindowsのAPIパラメータ.このクラスのすべての共通の方法はpywebviewを通じて行われます.apiオブジェクトはJavascript形式で公開されています.カスタムメソッドを必要としなくても、パラメータを定義する必要があります.複数のパラメータを渡したい場合は、辞書に入れることができます.戻り値タイプとパラメータタイプはJavascriptとPythonの間で変換されます.さらに例を挙げるには、独自のTODOアプリケーション(https://github.com/r0x0r/pywebview/tree/master/examples/todos)この方式のもう一つの大きな特徴は、マルチウィンドウをサポートすることである.2番目のウィンドウを作成するには、次のようにします.
メインウィンドウの作成後、次のcreate_Windows呼び出しはブロックされず、他の関数に渡す一意のIDも返されます.その他の新機能は1.ウィンドウを作成すると、htmlファイルの相対パスを指定できます(file://または他のプロトコルを使用する必要はありません).この方法では、リンクリソースの問題を解決できます.アプリケーションパッケージの場合にも適用されます.2.target=「_blank」リンクが外部ブラウザで開きます.3.非入力要素のテキスト選択はデフォルトで無効です.4.新しいロードカスタムCSSのload_css関数.完全な更新ログを表示するには、ここをクリックします(https://github.com/r0x0r/pywebview/blob/master/CHANGELOG.md)将来の計画の現在の最大の課題は、Windows上のインターネットExplorerエンジンとの完全な互換性であり、開発者が使用できる唯一のオリジナルWebレンダラーである.私たちはまだEdgeをサポートしていません.現在の状況では、全面的にサポートすることはできません.言い換えれば、現在WindowsでPywebviewをサポートしているのが一番いいのはIE 11です.半高速ソリューションは、QTサポートとWebKitエンジンを導入し、CEFをサポートする計画です.どちらのソリューションもアプリケーションの配布サイズを大幅に増加させますが、Web標準の発展速度と時間を両立させる方法は現在ありません.
https://pywebview.flowrl.com/
import webview
from threading import Thread
class Api():
def helloWorld(self, param):
return 'Hello Python!'
def load_html():
webview.load_html('Hello World
')
webview.evaluate_js("""
pywebview.api.helloWorld().then(function(response) {
alert(response)
})
""")
if __name__ == '__main__':
api = Api()
t = Thread(target=load_html)
t.start()
webview.create_window('Hello world', js_api=api)
ここには2つの通信モジュールがあります.jsとcreat_window. evaluate_を使用できます.jsはPythonから任意のJavascriptコードを実行し、結果を返します.JavascriptからPythonコードを実行するには、カスタムクラスを定義し、そのインスタンスをcreate_に渡す必要があります.WindowsのAPIパラメータ.このクラスのすべての共通の方法はpywebviewを通じて行われます.apiオブジェクトはJavascript形式で公開されています.カスタムメソッドを必要としなくても、パラメータを定義する必要があります.複数のパラメータを渡したい場合は、辞書に入れることができます.戻り値タイプとパラメータタイプはJavascriptとPythonの間で変換されます.さらに例を挙げるには、独自のTODOアプリケーション(https://github.com/r0x0r/pywebview/tree/master/examples/todos)この方式のもう一つの大きな特徴は、マルチウィンドウをサポートすることである.2番目のウィンドウを作成するには、次のようにします.
import webview
import threading
def create_new_window():
child_window = webview.create_window('Window #2', width=800, height=400)
webview.load_html('Master Window')
webview.load_html('Child Window', uid=child_window)
if __name__ == '__main__':
t = threading.Thread(target=create_new_window)
t.start()
# Master window
webview.create_window('Window #1', width=800, height=600)
メインウィンドウの作成後、次のcreate_Windows呼び出しはブロックされず、他の関数に渡す一意のIDも返されます.その他の新機能は1.ウィンドウを作成すると、htmlファイルの相対パスを指定できます(file://または他のプロトコルを使用する必要はありません).この方法では、リンクリソースの問題を解決できます.アプリケーションパッケージの場合にも適用されます.2.target=「_blank」リンクが外部ブラウザで開きます.3.非入力要素のテキスト選択はデフォルトで無効です.4.新しいロードカスタムCSSのload_css関数.完全な更新ログを表示するには、ここをクリックします(https://github.com/r0x0r/pywebview/blob/master/CHANGELOG.md)将来の計画の現在の最大の課題は、Windows上のインターネットExplorerエンジンとの完全な互換性であり、開発者が使用できる唯一のオリジナルWebレンダラーである.私たちはまだEdgeをサポートしていません.現在の状況では、全面的にサポートすることはできません.言い換えれば、現在WindowsでPywebviewをサポートしているのが一番いいのはIE 11です.半高速ソリューションは、QTサポートとWebKitエンジンを導入し、CEFをサポートする計画です.どちらのソリューションもアプリケーションの配布サイズを大幅に増加させますが、Web標準の発展速度と時間を両立させる方法は現在ありません.
https://pywebview.flowrl.com/