首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用HTML单击关闭PyWebView窗口

用HTML单击关闭PyWebView窗口
EN

Stack Overflow用户
提问于 2021-04-22 07:23:42
回答 2查看 899关注 0票数 0

信息预告:

有一个类似的问题处理同样的问题。

然而,这个并不适用于我(或者我只是不知道如何正确地包含它)。

我最近才开始使用pywebview。

目标:

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

问题:

使用的代码对我不起作用。

可以达到此功能(打印语句填充控制台,

不幸的是,我不知道为什么),但窗口没有关闭。

我刚从pywebview开始,所以我真的不知道该怎么做。

使用页面解决问题:

PyWebView网站

StackOverflow问题

代码(Python & HTML):

代码语言:javascript
复制
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()
代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-20 08:57:13

同时,我找到了一个关闭窗口并退出程序的解决方案。

然而,我得到了一个错误,不幸的是,我不知道为什么。

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2022-11-10 19:26:43

我认为你必须使用那个set_window方法

代码语言:javascript
复制
if __name__ == '__main__':
    api = Api()
    window = webview.create_window('Blackjack', 'index.html', js_api=api, min_size=(1000, 800))
    api.set_window(window)
    webview.start()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67208598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档