【发布时间】:2020-04-03 03:29:28
【问题描述】:
我有一些后端代码连接到 Tkinter 生成的简单 UI。 UI 基本上让用户选择一个文件,然后传递到后端。然后,将从文件中实例化一些对象。该对象有一个方法(在对象创建时运行)检查一些错误,如果有一个错误,它会提示一个对话框请求用户干预(向用户显示一些数据并询问他们如何处理)。
我想到了三种方法来处理这个问题:
创建一个临时的 tk.root 并从那里打开一个新窗口(不确定重复创建 tk.root 是否是个好主意,尤其是该方法运行 100 次以上)
让方法用数据引发自定义异常并在 Tkinter 应用程序中处理它(这是一个好习惯吗?)
不知何故将 tk.root 传递给对象方法并创建一个新窗口作为根窗口的子窗口(我被困在这里,因为该方法在对象创建时被调用,所以我没有明确在 Tkinter 应用程序中调用它。)
对不起,如果我听起来很困惑,这是我第一次使用 Tkinter。
【问题讨论】:
-
如果您需要打开一个额外的窗口,请使用
Toplevel()而不是再次调用Tk()(这会导致各种问题,因为它不仅仅是创建一个窗口)。