Tkinter simpledialog框未在Windows 10和Python3中获得关注

时间:2019-01-04 17:11:54

标签: python tkinter simpledialog

在下面的代码中,第一个对话框立即获得焦点,因此用户只需键入答案并按Enter。在第二个版本中,在Windows中运行似乎没有发生。在运行Raspbian 9时,两个窗口在打开时都会获得焦点。

在Windows中打开两个窗口时,有什么方法可以使两个窗口都聚焦吗?

import tkinter as tk
from tkinter import simpledialog

root = tk.Tk()
root.withdraw()

answer1 = simpledialog.askstring("Test1","This one gets focus when it opens",parent=root)
answer2 = simpledialog.askstring("Test2","This one doesn't",parent=root)

1 个答案:

答案 0 :(得分:1)

我已经看了几天这个问题了,希望有人能对此问题有所启发。我在Windows 10下运行Python 3.6.5,并遇到相同的问题。

我尝试了几种不同的方法,但是看来微软是按照自己的方式做的。我终于找到了一个可行的方法,但前提是您不隐藏根窗口:

import tkinter as tk
from tkinter import simpledialog

root = tk.Tk()
#root.withdraw()     # This does not work if you hide the root window

root.update_idletasks()
answer1 = simpledialog.askstring("Test1","This one gets focus",parent=root)

root.update_idletasks()
answer2 = simpledialog.askstring("Test2","This one doesn't",parent=root)