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). Спасибо за помощь!