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

如何基于Python Eel实现点击按钮显示变量存储路径的图片?

实现点击按钮显示指定路径图片的Eel应用

你的代码存在几个关键问题需要修正,以下是完整的可运行实现方案:

修正后的Python代码(main.py)

import eel

# 初始化Eel,指定web资源目录
eel.init('web')

# 存储图片路径的变量,替换为你的实际图片路径
# 注意:如果图片放在web文件夹内,直接写相对路径(如"test.jpg");外部路径用绝对路径(如"C:/images/photo.png")
image_path = "your_image_path_here.jpg"

@eel.expose
def get_image_path():
    """供前端调用,返回图片路径"""
    return image_path

# 启动应用,block=True保持主线程运行,确保能响应前端请求
eel.start('index.html', size=(600, 400), block=True)

修正后的HTML代码(web/index.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Eel App</title>
    <script type="text/javascript" src="/eel.js"></script>
</head>
<body>
    <h1>Image Display</h1>
    
    <!-- 点击触发图片加载的按钮 -->
    <button onclick="loadImage()">显示图片</button>
    
    <!-- 图片元素,初始隐藏 -->
    <img id="image-display" src="" alt="Image" style="display: none; margin-top: 20px; max-width: 80%;">

    <script>
        async function loadImage() {
            // 异步调用Python函数获取图片路径
            const imgPath = await eel.get_image_path()();
            const imgElement = document.getElementById('image-display');
            
            // 更新图片源并显示
            imgElement.src = imgPath;
            imgElement.style.display = 'block';
        }
    </script>
</body>
</html>

关键修改说明

  1. Python端执行逻辑修正:

    • 原代码中eel.start默认是阻塞的,之后的代码不会执行,改为将图片路径通过暴露的函数供前端主动获取
    • 正确初始化image_path变量,替换为你的实际图片路径
  2. HTML端交互逻辑补充:

    • 添加了触发点击的按钮,绑定loadImage函数
    • 使用async/await处理Eel的异步调用,确保获取到路径后再更新图片
    • 图片初始设为隐藏,加载完成后显示,提升交互体验
  3. 路径注意事项:

    • 推荐将图片放在web文件夹内,使用相对路径更简单
    • 如果使用外部绝对路径,Windows系统注意用/或双反斜杠\\,避免转义错误
    • 若需访问web目录外的文件,可在eel.init时添加allowed_extensions=['.jpg', '.png']来允许对应格式的文件访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:23:13