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

主Flet App集成两个独立Flet App:点击按钮打开对应应用可行吗?

实现Flet主应用调用独立子应用的方案

完全可以实现主应用点击按钮打开独立子应用的需求,核心思路是通过启动子应用的独立进程来实现,以下是具体实现步骤和代码示例:

实现原理

每个Flet应用都是独立的Python进程,我们可以利用Python的subprocess模块,在主应用的按钮点击事件中触发子应用脚本的运行,从而打开对应的子应用窗口。

代码示例

1. 第一个子应用(app1.py)

import flet as ft

def main(page: ft.Page):
    page.title = "子应用1"
    page.add(ft.Text("这是第一个独立Flet应用"))

if __name__ == "__main__":
    ft.app(target=main)

2. 第二个子应用(app2.py)

import flet as ft

def main(page: ft.Page):
    page.title = "子应用2"
    page.add(ft.Text("这是第二个独立Flet应用"))

if __name__ == "__main__":
    ft.app(target=main)

3. 主应用入口(main_app.py)

import flet as ft
import subprocess

def open_app1(e):
    # 启动第一个子应用进程
    subprocess.Popen(["python", "app1.py"])

def open_app2(e):
    # 启动第二个子应用进程
    subprocess.Popen(["python", "app2.py"])

def main(page: ft.Page):
    page.title = "主应用入口"
    # 配置对应颜色的按钮,匹配流程图样式
    page.add(
        ft.ElevatedButton("打开应用1", on_click=open_app1, bgcolor=ft.colors.YELLOW, color=ft.colors.BLACK),
        ft.ElevatedButton("打开应用2", on_click=open_app2, bgcolor=ft.colors.GREEN, color=ft.colors.WHITE)
    )

if __name__ == "__main__":
    ft.app(target=main)

注意事项

  • 确保三个脚本在同一目录下,若不在同一目录,需在subprocess.Popen中传入子应用脚本的完整绝对路径
  • 如果使用虚拟环境,要替换python为虚拟环境中Python解释器的完整路径,避免使用系统默认Python
  • 可以根据需求自定义按钮的尺寸、位置等样式,进一步匹配你的流程图布局

内容的提问来源于stack exchange,提问作者AMIR HAMZA SHAIKH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:12:12