Как поймать сигнал максимизации в Tk? - PullRequest
3 голосов
/ 10 января 2011

Вы можете связать команду с кнопкой X окна следующим образом:

wm protocol $windowPath WM_DELETE_WINDOW $command

Как я могу сделать то же самое для кнопки максимизации окна?

1 Ответ

2 голосов
/ 10 января 2011

Для него нет стандартного протокола: X11 ICCCM или FreeDesktop . Таким образом, wm protocol не может быть использован для него. Однако вы можете использовать событие <Configure> для отслеживания всех изменений размера окна. Обратите внимание, что если вы установите его на верхний уровень, вы также получите уведомления для всех виджетов внутри этого окна, поэтому вам следует проверить, действительно ли событие было на верхнем уровне, прежде чем воздействовать на него, возможно, так:

bind $toplvl <Configure> {
    if {"%W" eq [winfo toplevel "%W"]} {
        ActOnResize %W %w %h [wm attributes %W -zoomed]
    }
}

Возможно, вы также захотите проверить атрибут -fullscreen.

...