Модуль simpledialog создает новое окно Toplevel, которое вы хотите открыть, а не корневое окно.
simpledialog
работает лучше всего, когда у вас уже запущен графический интерфейс tkinter. Я думаю, вам было бы намного лучше с easygui
, поскольку он на самом деле использует экземпляр tkinter Tk:
import easygui
fieldNames = ["Username", "Password"]
values = easygui.multpasswordbox("Enter Twitter information", "Input", fieldNames)
if values:
username, password = values
else:
# user pushed "Cancel", the esc key, or Xed out the window
username, password = None, None
print(username, password)
Если это не сработает, у easygui есть ловушка для использования самого верхнего трюка:
import easygui
fieldNames = ["Username", "Password"]
mb = easygui.multpasswordbox("Enter Twitter information", "Input", fieldNames, run=False)
mb.ui.boxRoot.attributes("-topmost", True)
mb.run()
if mb.values:
username, password = mb.values
else:
# user pushed "Cancel", the esc key, or Xed out the window
username, password = None, None
print(username, password)
или просто создайте свой собственный диалог.