Python Eel如何实现程序启动时UI全屏显示?
解决Eel程序启动自动全屏的方案
方法一:调整Chrome命令行参数
之前使用--kiosk无效,可能是打包后Chrome启动逻辑被PyInstaller修改,或是参数需要搭配其他选项。可以尝试以下两种参数组合:
方案1:使用原生全屏启动参数
import eel import io import sys stream = io.StringIO() sys.stdout = stream sys.stderr = stream eel.init(".") @eel.expose def python(): pass # 用--start-fullscreen替代--kiosk,搭配禁用首次运行提示和信息栏 eel.start( "home.html", mode="chrome", cmdline_args=[ "--start-fullscreen", "--no-first-run", "--disable-infobars" ] )
方案2:结合屏幕分辨率与最大化参数
先获取屏幕尺寸,再设置窗口大小并配合最大化参数:
import eel import io import sys from screeninfo import get_monitors stream = io.StringIO() sys.stdout = stream sys.stderr = stream # 获取主屏幕分辨率 monitor = get_monitors()[0] screen_width, screen_height = monitor.width, monitor.height eel.init(".") @eel.expose def python(): pass eel.start( "home.html", mode="chrome", size=(screen_width, screen_height), cmdline_args=["--start-maximized"] )
注意:需先安装screeninfo库:pip install screeninfo
方法二:通过前端JavaScript实现全屏
这种方式不受浏览器启动参数限制,可靠性更高。在home.html页面加载完成后触发全屏逻辑:
<!DOCTYPE html> <html> <head> <title>Eel Fullscreen</title> <script type="text/javascript" src="/eel.js"></script> </head> <body onload="enterFullscreen()"> <!-- 页面内容 --> <script> function enterFullscreen() { const elem = document.documentElement; // 兼容不同浏览器的全屏API if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { elem.msRequestFullscreen(); } } </script> </body> </html>
Python代码保持基础启动逻辑即可:
import eel import io import sys stream = io.StringIO() sys.stdout = stream sys.stderr = stream eel.init(".") @eel.expose def python(): pass eel.start("home.html")
方法三:PyInstaller打包注意事项
打包时需确保参数和资源文件正确传递:
- 生成.spec文件:
pyi-makespec your_script.py - 编辑.spec文件,确保web资源文件(如
home.html)被包含到打包目录,避免程序启动时找不到页面 - 若使用命令行参数方案,需确认打包后Chrome的启动参数未被PyInstaller覆盖
内容的提问来源于stack exchange,提问作者Suprava
相关产品推荐
相关产品推荐

