Pywebview 2.0は、WebテクノロジーとPythonを組み合わせてGUIアプリケーションを作成するために使用できます.


Pywebviewでは、ElectronのようなPythonライブラリが2.0バージョンリリースされています.Pywebviewでは、WebテクノロジーとPythonを組み合わせてGUIアプリケーションを作成できます.Pythonでアプリケーションの論理制御を行い、JavascriptとCSSを使用してGUIを生成することができます.Pywebviewはfreezeのサポートが良好で、プログラムの実行可能なパッケージを実現した.Pywebview2.0の最大の変化はPythonとJavascript間の双方向通信であり、Python Webサーバのニーズを完全に解消した.簡単なHello Worldを例に挙げて説明します.
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/