Форум сайта python.su
0
Задача такая: с момента вызова диалогового окна и до момента его уничтожения не отдавать фокус главному окну.
Диалоговое окно - виджет Toplevel. Я сделал ему бинд на событие “<FocusOut>”. В вызываемой при этом функции написал event.widget.focus(). Функция вызывалась, но фокус главному окну отдавался. Я заменил focus() на focus_force(). Диалоговое окно при этом перестало отдавать фокус другим приложениям, что не есть хорошо. После этого я решил отслеживать <FocusIn> в главном окне с целью возвращения фокуса к диалогу. Бинд я поставил фрейму, который в этот момент находится на главном окне. В этом случае функция даже не вызывалась.
Подскажите, как же решить мне задачу эту?
Отредактировано trympyrym (Авг. 14, 2013 01:27:35)
Офлайн
63
Ничего не понял. Зачем?
Офлайн
1
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?
Офлайн
0
malya
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?
Офлайн
63
Еще раз. Зачем? Я повторяю свой вопрос не потому, что я не врубился. Я понял с первого раза. Такая задача крайне редка и я не вижу смысла ее реализовывать. Кроме того у Вас явно не тот случай, когда это смертельно необходимо (на самом деле я даже таких случаев не знаю и не могу себе представить. Точнее могу представить, но это уже корявый, с точки зрения дизайна пользовательского интерфейса, GUI). Если без выбора в последующем окне не должно работать предыдущее, то зачем создавать toplevel?
Не легче ли модифицировать предыдущее окно?
P.S. Если нужно, то я могу привести пример…
P.S.S. Вообще эта тема должна быть в разделе GUI :)
Отредактировано 4kpt (Авг. 14, 2013 19:02:57)
Офлайн