Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 14, 2013 01:26:41

trympyrym
Зарегистрирован: 2013-08-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

удержание фокуса на диалоговом окне ( Tkinter )

Задача такая: с момента вызова диалогового окна и до момента его уничтожения не отдавать фокус главному окну.

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

Подскажите, как же решить мне задачу эту?

Отредактировано trympyrym (Авг. 14, 2013 01:27:35)

Офлайн

#2 Авг. 14, 2013 06:49:57

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

удержание фокуса на диалоговом окне ( Tkinter )

Ничего не понял. Зачем?



Офлайн

#3 Авг. 14, 2013 10:33:32

malya
От:
Зарегистрирован: 2012-01-11
Сообщения: 49
Репутация: +  1  -
Профиль   Отправить e-mail  

удержание фокуса на диалоговом окне ( Tkinter )

Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?



Офлайн

#4 Авг. 14, 2013 11:14:06

trympyrym
Зарегистрирован: 2013-08-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

удержание фокуса на диалоговом окне ( Tkinter )

malya
Насколько я понял, человек хочет модальное окно и так чтобы родительское окно было недоступно пока не закроется модальное. Правильно?

Именно так. При этом другие приложения должны быть доступны

Офлайн

#5 Авг. 14, 2013 18:59:15

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

удержание фокуса на диалоговом окне ( Tkinter )

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

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

P.S.S. Вообще эта тема должна быть в разделе GUI :)



Отредактировано 4kpt (Авг. 14, 2013 19:02:57)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version