我基本上是在设计一个应用程序,在启动时弹出一个对话框。它要求用户名。从终端启动应用程序时,将打开一个主窗口,然后弹出一个对话框。但有时它会正确聚焦,我能够输入用户名,有时它无法获得焦点。然后问题就开始了。点击它后对话框没有重新获得焦点,整个应用程序都没有响应。只留下一种方法来关闭它,就是杀死它。
知道为什么这个问题会随机发生吗?打开应用程序并正确聚焦后,我可以移动鼠标指针并单击我喜欢的位置,如果单击对话框,则重新获得焦点。 image显示对话框中的红色退出按钮是聚焦的,但我既不能输入任何内容也不能关闭对话框。
#! /usr/bin/env python3
from tkinter import *
from tkinter import simpledialog
import threading
class GUI(object):
def __init__(self, master):
self.master = master
def prompt_username(self):
username = simpledialog.askstring("User informatiion", "Enter user name:")
if username:
print(f"User name: {username}")
else:
print("no user name provided")
def connection_thread(*args):
# some other networking stuffs
gui = GUI(root)
gui.prompt_username()
root = Tk()
root.geometry("500x400")
threading._start_new_thread(connection_thread, ('',))
root.mainloop()
print("Pogram exited")
我无法在之前准备的示例代码中重现该问题。最后我添加了另一个示例,可以使用此代码重现问题。