我正在尝试构建一个生成动态视觉模型的应用程序(在Windows上使用Python3和PyCharm )。我将Arcade用于主查看/用户交互窗口,使用Tkinter用于初步数据输入、模型参数、数值输出、错误和警告等。
我发现如果我打开一个tk窗口(例如messagebox.showinfo或messagebox.error),而这个窗口是打开的,应用程序就会挂起。以下是重现该问题的最小代码片段:
import tkinter.messagebox
import arcade
tkinter.messagebox.showinfo("Greetings", "hello")
app = arcade.Window(500, 300, "Let's play")
tkinter.messagebox.showinfo("Greetings", "hello again")第二个消息框永远不会打开,高达30%的CPU处于活动状态,而Python除了(理论上)等待用户输入之外什么也不做。
发布于 2021-06-28 15:14:49
您可以从arcade启动tkinter应用程序
import arcade
import tkinter as tk
class ArcadeApp(arcade.Window):
def __init__(self):
super().__init__(400, 300)
self.root = None
def on_closing(self):
self.root.destroy()
self.root = None
def on_draw(self):
arcade.start_render()
arcade.draw_text('Click to launch Tkinter', 200, 150, arcade.color.RED, 30, align='center', anchor_x='center')
def on_mouse_release(self, x, y, button, key_modifiers):
if not self.root:
self.root = tk.Tk()
self.root.geometry('400x300')
self.root.protocol('WM_DELETE_WINDOW', self.on_closing)
label = tk.Label(self.root, text='Greetings from Tkinter!')
label.config(font=('', 20))
label.place(relx=0.5, rely=0.5, anchor='center')
self.root.mainloop()
ArcadeApp()
arcade.run()输出:


https://stackoverflow.com/questions/68118733
复制相似问题