如何使用 Flask 更改 Tkinter 标签 API

How to change a Tkinter label using a Flask API

我有一个带有一些端点的 Flaks API。我使用多处理来 运行 它与我的程序并行。 Tkinter 以 window.mainloop() 开始。 我把它们都拆分成了各自的classes(不知道会不会影响smth)。

我现在想更改我的 tkinter 标签上的标签文本。我正在使用 mylabel.config(text="myText") 并想从我的 API 端点调用它(像这样的函数:)

myEndpoint(self, newStatus:str):
   self.mylabel.config(text=newStatus)
   return newStatus  

当我的函数被 API 进程 运行 时,我该如何更改标签? 感谢您的帮助

编辑: @Bryan Oakley 想要更多信息。这是:

Window 的所有函数都在它们自己的 class 另一个文件中。我的程序导入它,使用所有需要的参数(Window 大小等)创建一个对象,然后用以下内容启动它:

from window import window
w = window(Parameters like Size, ...)
w.start()

启动功能只是更改全屏参数并设置一些按钮操作。然后它调用 self.window.mainloop()
window = Tk() 在我的 init

中设置

我的 Flask API 在另一个文件中也有自己的 class 并被导入:

from api import flaskApi
api = flaskApi(Port, window object, ...)

我的 api class 设置 Flask 的 init 方法将带有 app.add_url_rule 的端点添加到函数 myEndpoint (见上文)。

希望这就是您所需要的,我找不到解决方案,很高兴得到您的帮助。感谢您的帮助:)

经过越来越多的研究,我终于找到了答案。要从另一个进程(这里是我的 Flask API)访问另一个进程(这里是主进程),你需要使用队列或管道(Queue Documentation)。

此队列(或管道)允许您与另一个进程通信。一个从队列中读取(这里是我的 Tkinter Window),一个(或多个)写入队列。也许这可以帮助遇到同样问题的其他人。

感谢您的帮助:)