pywebview全屏模式下实现程序退出 您所在的位置:网站首页 搜狗浏览器全屏怎么退出窗口 pywebview全屏模式下实现程序退出

pywebview全屏模式下实现程序退出

2024-07-11 19:36| 来源: 网络整理| 查看: 265

用pywebview以全屏模式启动程序后是没有窗口边框的, 当然也就没有关闭按钮了, 可以在前端的页面中画个按钮, 通过js调用自定义的api方法, 参考stackoverflow上的问题:

https://stackoverflow.com/questions/65279193/how-to-close-pywebview-window-from-javascript-using-pywebview-api

直接上代码吧, 看注释

import sqlite3 import webview from flask import Flask, render_template app = Flask(__name__) conn = sqlite3.connect('data.db', check_same_thread=False) c = conn.cursor() @app.route('/') def index(): # 随机抽题 data = [] cursor = c.execute('select * from tiku order by random() limit 2') # cursor = c.execute('select * from tiku where id = 62 or id = 67') for row in cursor: data.append({ 'id': row[0], 'title': row[1], 'answer': row[2] }) return render_template('index.html', data=data) # 定义要传给前端js调用的api类定义, 这里定义了内部属性_window和set_window()方法来传递要操作的webview中的window对象 class Api: def __init__(self): self._window = None def set_window(self, window): self._window = window def quit(self): self._window.destroy() def start_app(): api = Api() window = webview.create_window( title='抽题程序', url=app, confirm_close=True, fullscreen=True, js_api=api, ) api.set_window(window) cn = { 'global.quitConfirmation': u'确定关闭?' } webview.start(localization=cn, debug=True, gui='cef') if __name__ == '__main__': # app.run(port=8000, debug=True) start_app()

前端调用

// 调用pywebview的api $("#exit").click(function () { pywebview.api.quit(); })


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有