Tkinter Simpledialog Box не получает фокус в Windows 10 с Python3 - PullRequest
0 голосов
/ 04 января 2019

В приведенном ниже коде первое диалоговое окно сразу же фокусируется, поэтому пользователь может просто набрать ответ и нажать клавишу ввода. Во втором случае этого не происходит при работе в 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 голосов
/ 09 января 2019

Я смотрел этот вопрос уже несколько дней, надеясь, что кто-то может пролить свет на эту проблему. Я использую Python 3.6.5 под Windows 10 и получаю ту же проблему.

Я пробовал несколько разных вещей, но, похоже, Microsoft делает вещи по-своему. Я наконец нашел вещь, которая работает, но только если вы не скрываете корневое окно:

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)
...