trympyrym
Авг. 14, 2013 01:26:41
Задача такая: с момента вызова диалогового окна и до момента его уничтожения не отдавать фокус главному окну.
Диалоговое окно - виджет Toplevel. Я сделал ему бинд на событие “<FocusOut>”. В вызываемой при этом функции написал event.widget.focus(). Функция вызывалась, но фокус главному окну отдавался. Я заменил focus() на focus_force(). Диалоговое окно при этом перестало отдавать фокус другим приложениям, что не есть хорошо. После этого я решил отслеживать <FocusIn> в главном окне с целью возвращения фокуса к диалогу. Бинд я поставил фрейму, который в этот момент находится на главном окне. В этом случае функция даже не вызывалась.
Подскажите, как же решить мне задачу эту?
4kpt
Авг. 14, 2013 06:49:57
Ничего не понял. Зачем?
malya
Авг. 14, 2013 10:33:32
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?
trympyrym
Авг. 14, 2013 11:14:06
malya
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?
Именно так. При этом другие приложения должны быть доступны
4kpt
Авг. 14, 2013 18:59:15
Еще раз. Зачем? Я повторяю свой вопрос не потому, что я не врубился. Я понял с первого раза. Такая задача крайне редка и я не вижу смысла ее реализовывать. Кроме того у Вас явно не тот случай, когда это смертельно необходимо (на самом деле я даже таких случаев не знаю и не могу себе представить. Точнее могу представить, но это уже корявый, с точки зрения дизайна пользовательского интерфейса, GUI). Если без выбора в последующем окне не должно работать предыдущее, то зачем создавать toplevel?
Не легче ли модифицировать предыдущее окно?
P.S. Если нужно, то я могу привести пример…
P.S.S. Вообще эта тема должна быть в разделе GUI :)