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

如何在Kivy GUI按钮上绑定并运行外部exe程序?

实现Kivy按钮调用外部exe程序

要实现点击Kivy按钮运行指定文件夹中的exe文件,你可以借助Python标准库的subprocess模块执行外部程序,具体实现步骤如下:

1. 导入必要模块

在代码开头添加subprocess模块的导入,它无需额外安装,是Python自带的工具模块。

2. 绑定按钮点击事件

给目标按钮添加on_press事件绑定,指定一个处理函数来负责启动exe文件。

3. 编写exe调用逻辑

在处理函数中,使用subprocess.run()方法启动外部exe,注意填写正确的exe绝对路径;如果不想显示exe运行时的控制台窗口,可以添加对应参数(仅Windows系统有效)。

修改后的完整代码

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Button
import subprocess  # 导入subprocess模块

class Data_Col(App):
    def build(self):
        self.window = GridLayout()
        self.window.cols = 1
        self.window.size_hint = (0.5, 0.5)
        self.window.pos_hint = {"center_x": 0.5, "center_y" : 0.5}

        # 图片组件
        self.window.add_widget(Image(source="logo.png"))
        # 文本标签
        self.greeting = Label(text="Bonjour!!!", font_size = 18, bold = True)
        self.window.add_widget(self.greeting)
        # 按钮组件,绑定点击事件
        self.button = Button(
            text="Run Data-Col", 
            size_hint = (0.3, 0.3), 
            bold = True, 
            background_color = '0175E8', 
            background_normal = "",
            on_press=self.run_data_col_exe  # 绑定点击事件
        )
        self.window.add_widget(self.button)
        
        return self.window

    def run_data_col_exe(self, instance):
        # 替换为你的exe文件绝对路径,用原始字符串避免转义问题
        exe_path = r"C:\your\target\folder\data_analysis.exe"
        try:
            # 调用exe,若不想显示控制台,添加creationflags参数(Windows专属)
            subprocess.run(
                exe_path,
                # creationflags=subprocess.CREATE_NO_WINDOW  # 取消注释可隐藏控制台
            )
        except FileNotFoundError:
            print(f"错误:未找到exe文件,请检查路径是否正确:{exe_path}")
        except Exception as e:
            print(f"运行exe时出现错误:{str(e)}")

if __name__ == "__main__":
    Data_Col().run()

关键细节说明

  • exe路径:务必使用绝对路径,避免因程序工作目录不同导致找不到文件;使用前缀r的原始字符串可以避免路径中反斜杠的转义问题。
  • 隐藏控制台:如果不需要显示exe运行时的控制台窗口,取消代码中creationflags=subprocess.CREATE_NO_WINDOW的注释即可,该参数仅适用于Windows系统。
  • 异常处理:添加异常捕获可以在路径错误或运行出错时给出明确提示,方便调试排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:30:17