单击 HTML 按钮关闭 PyWebView 窗口

问题描述

提前信息:
一个类似的问题处理同样的问题。
但是,这个对我不起作用(或者我只是不知道正确地包含它)。
我最近才开始使用 pywebview。

目标:
我想关闭窗口/用HTML中的链接(或按钮)结束程序。

问题:
使用的代码对我不起作用。
函数可以到达(打印语句填满控制台,
不幸的是,我不知道为什么),但窗口没有关闭
我刚开始使用 pywebview,所以我真的不知道该怎么做。


用于解决问题的页面
PyWebView Website
StackOverflow Question


代码(Python 和 HTML):

import sys

import webview


class Api:

    def __init__(self):
        self._window = None

    def set_window(self,window):
        self._window = window

    def destroy(window):
        print('Destroying window..')
        window.destroy()
        print('Destroyed!')


if __name__ == '__main__':
    api = Api()
    window = webview.create_window('Blackjack','index.html',js_api=api,min_size=(1000,800))
    webview.start()
<html>
    <body>
        <main>
            <div id="content">
                <a>
                    <div class="block" onclick="exit()">End</div>
                </a>
                <script>
                    function exit() { pywebview.api.destroy() }
                </script>
            </div>
        </main>
    </body>
</html>

解决方法

与此同时,我找到了关闭窗口并退出程序的解决方案。
但是,我得到一个错误,不幸的是我不知道为什么。

HTML / JS 代码是正确的 到目前为止,不需要调整。

Python 脚本中,只需要指定 def destroy(self) 而不是 def destroy(window)


其实很简单,但还是花了我将近一个月的时间才解决。