You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pywebview中开启Debug但不自动弹出DevTools窗口

解决pywebview调试工具自动弹出问题

要保留右键菜单和调试工具访问权限,同时阻止DevTools自动弹出,可以根据pywebview使用的后端分别处理:

方法1:针对QtWebEngine后端(跨平台)

无需依赖debug=True,手动启用开发者工具支持即可保留右键菜单的「检查元素」选项,且不会自动弹出DevTools窗口。

修改代码,在custom_logic函数中启用Qt的开发者扩展支持:

import webview
from PyQt5.QtWebEngineWidgets import QWebEngineSettings

def custom_logic(window):
    # 获取QtWebEnginePage实例
    page = window.get_elements()[0].page()
    # 启用开发者工具支持,右键菜单将显示检查元素选项
    page.settings().setAttribute(QWebEngineSettings.WebAttribute.DeveloperExtrasEnabled, True)

height = 800
width = 1200
window = webview.create_window('Unreal Map Bridge', url='https://map.justgeektechs.com', height=height, width=width)
window.events.closed += on_closed
# 此处无需设置debug=True,避免触发自动弹出DevTools
webview.start(func=custom_logic, args=window, private_mode=False)

方法2:针对EdgeChromium后端(Windows)

利用CEF的启动参数阻止DevTools自动打开,同时保留debug=True以启用右键菜单:

import webview

def on_closed():
    pass

def custom_logic(window):
    pass

height = 800
width = 1200
window = webview.create_window('Unreal Map Bridge', url='https://map.justgeektechs.com', height=height, width=width)
window.events.closed += on_closed
# 通过extra_args传递CEF参数,禁止自动打开DevTools
webview.start(func=custom_logic, args=window, debug=True, private_mode=False, extra_args=['--auto-open-devtools-for-tabs=false'])

补充说明

  • 可通过webview.current_backend查看当前使用的后端类型。
  • Qt后端方法无需额外依赖(确保pywebview安装时包含Qt支持),EdgeChromium后端需保证pywebview使用CEF/Edge运行时。

内容的提问来源于stack exchange,提问作者dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 08:43:13