Python tkSimpleDialog в полноэкранном режиме и фокус на полноэкранном родительском

У меня проблема с настройкой tkSimpleDialog для фокусировки на моем полноэкранном графическом интерфейсе. У меня есть графический интерфейс, который я пытаюсь использовать диалоговое окно, чтобы использовать в качестве пароля администратора для закрытия графического интерфейса (как приложение в режиме киоска) с помощью root.quit(). Проблемы с этим состоят в том, что диалоговое окно не появляется перед родительскими окнами, если родительские окна полноэкранные. Кроме того, я бы хотел, чтобы tkSimpleDialog также работал в полноэкранном режиме.

Вот код для того, как диалоговое окно вызывается / создается с использованием tkSimpleDialog.py в моей программе:

    def check_admin_password():
    # use askstring here to verify password.
    pass_attempt = simpledialog.askstring("Verifying access","Please enter Admin password", parent=window, show="*")
    if pass_attempt == "password":
        root.quit() # used whatever your instance of Tk() is here in place of root.

admin_minimize_button = Button(window, text = "Administrator", command = check_admin_password, width=35, height=12)
admin_minimize_button.grid(row=4, column=0)

Я использую следующий код для родительского окна, и я полагаю, что есть что-то с переопределенным (True), которое влияет на фокус моего диалогового окна:

qwindow = Toplevel(root)                                            #renames Toplevel "popup" window frame to variable "qwindow"
qwindow.title('Mission Queue')                                      #creates title on popup window
w, h = qwindow.winfo_screenwidth(), qwindow.winfo_screenheight()    #aquires dimensions from display size
qwindow.geometry("%dx%d+0+0" % (w, h))                              #sets window size to aquired dimensions
qwindow.overrideredirect(True)                                      #removes top bar and exit button from parent window frame

Я попытался отредактировать файл tkSimpleDialog.py и добавить переопределенную прямую (True) строку, однако это не работает. Если нужна дополнительная информация, дайте мне знать. Любые советы будут высоко ценится. Заранее спасибо.

1 ответ

Решение

Из-за моей неспособности найти решение, используя tkSimpleDialog, я попытался использовать другой подход, создав свой собственный "диалог". К сожалению, я все еще не смог получить диалоговое окно для фокусировки строки ввода с установленным на экране окном wm_attributes('-fullscreen', 'True') а также overrideredirect(True), Хотя было бы лучше иметь обе работы; для моих целей будет нормально работать в полноэкранном режиме в моем приложении без overrideredirect(True), Для тех, у кого похожая проблема или кто хочет узнать больше о моем прогрессе, вот ссылка на другой пост на моем форуме: ( Виджет входа Tkinter с Overrideredirect и Fullscreen). Спасибо за помощь!

Другие вопросы по тегам