Найти - Пользователи
Полная версия: удержание фокуса на диалоговом окне ( Tkinter )
Начало » Python для новичков » удержание фокуса на диалоговом окне ( Tkinter )
1
trympyrym
Задача такая: с момента вызова диалогового окна и до момента его уничтожения не отдавать фокус главному окну.

Диалоговое окно - виджет Toplevel. Я сделал ему бинд на событие “<FocusOut>”. В вызываемой при этом функции написал event.widget.focus(). Функция вызывалась, но фокус главному окну отдавался. Я заменил focus() на focus_force(). Диалоговое окно при этом перестало отдавать фокус другим приложениям, что не есть хорошо. После этого я решил отслеживать <FocusIn> в главном окне с целью возвращения фокуса к диалогу. Бинд я поставил фрейму, который в этот момент находится на главном окне. В этом случае функция даже не вызывалась.

Подскажите, как же решить мне задачу эту?
4kpt
Ничего не понял. Зачем?
malya
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?
trympyrym
malya
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?

Именно так. При этом другие приложения должны быть доступны
4kpt
Еще раз. Зачем? Я повторяю свой вопрос не потому, что я не врубился. Я понял с первого раза. Такая задача крайне редка и я не вижу смысла ее реализовывать. Кроме того у Вас явно не тот случай, когда это смертельно необходимо (на самом деле я даже таких случаев не знаю и не могу себе представить. Точнее могу представить, но это уже корявый, с точки зрения дизайна пользовательского интерфейса, GUI). Если без выбора в последующем окне не должно работать предыдущее, то зачем создавать toplevel?
Не легче ли модифицировать предыдущее окно?

P.S. Если нужно, то я могу привести пример…

P.S.S. Вообще эта тема должна быть в разделе GUI :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB