gpt4 book ai didi

python - 与 Flask 应用程序同时运行 GUI

转载 作者:行者123 更新时间:2023-12-05 02:17:46 25 4
gpt4 key购买 nike

我正在尝试围绕我的 flask 应用程序为我办公室的菜鸟构建一个简单的 tkinter GUI 窗口。我希望脚本按以下顺序执行这些任务:

  • 启动 flask 网络服务器
  • 使用一个按钮打开一个 tkinter GUI 窗口。按下时,该按钮会打开应用程序的索引页面(例如 http://127.0.0.1:5000 )
  • 当 tkinter gui 窗口关闭时终止 flask web 服务器

这是我目前所拥有的,但应用程序独立于 tkinter 窗口运行,我必须在看到 gui 窗口之前使用 crtl+c 终止 flask 应用程序:

from flask_app import app
from tkinter import tk
import webbrowser

class GUI:
def __init__(self):
app.run()
self.btn = tk.Button(root, text='Open in Browser', command:self.open_browser_tab).pack()

def open_browser_tab(self):
webbrowser.open(url='http:127.0.0.1:5000', new=2)

if __name__ == '__main__':
root = tk.Tk()
GUI(root)
root.mainloop()

那么如何在应用程序运行时运行进程呢?

最佳答案

选项

flask 应用程序正在阻止您的 GUI。您有两个选择:

  1. 线程/多线程
  2. 单独申请

多线程

用多线程编写 tkinter 应用程序是可能的,但你必须小心去做。

  • tkinter 必须在主线程中运行
  • tkinter 不能从主线程以外的任何线程访问或实现

分离进程

我建议使用 subprocess模块。如果您将我们的功能分成两个应用程序并使用 subprocess 模块启动/停止 flask 应用程序,我想您会得到想要的。

关于python - 与 Flask 应用程序同时运行 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47169221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com