在继续使用tkinter之前,如何等待模态窗口的响应?

2024-09-30 18:19:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序,在这个程序中我创建了几个自定义模式窗口,它们是顶级tkinter窗口的子窗口。下面是这样一个窗口的例子,但我还有其他更复杂的窗口。我想做的是,但无法决定如何做,就是找到一个我称之为这个的地方,等待回应。我尝试过类似下面的方法,但无法创建窗口

modal = ModalWindow(tk.Tk(), 'Title', 'Text')
while modal.choice is None:
    pass
if modal.choice == 'Yes':
    # Do Something

处理这类事情的适当方法是什么?在

自定义模式窗口示例

^{pr2}$

Tags: 方法text程序titletkinter地方模式顶级
2条回答

我缺少一些基本的东西。如果窗口是应用程序模式的,则必须等待:没有任何程序可执行。如果您试图等待在属于另一个应用程序的窗口中发生的事件,除非您编写一些棘手的OLE代码,否则您将陷入困境(我假设Windows是这样的,因为UNIX的操作方式永远不会导致eve考虑这样的解决方案组件)。在

经过进一步的挖掘,我找到了自己的答案。以下是我想要的。函数wait_window接受一个tkinter窗口并暂停,直到该窗口关闭。在

root = tk.Tk()
modal = ModalWindow(root, 'Title', 'Text')
root.wait_window(modal.modalWindow)
if modal.choice == 'Yes':
    # Do Something

相关问题 更多 >